使用devstack部署多节点openstack
在使用openstack环境的过程中,时常会根据服务需求调整部署的服务。这就涉及到添加新的节点到原有的openstack环境中。
大家知道devstack一般用来部署All-In-One的环境,其实devstack也能用来部署多节点环境。
通过local.conf文件的配置就能达到这一目的。
下面给出一个简单例子:
[]
DATABASE_PASSWORD=openstack
ADMIN_PASSWORD=openstack
SERVICE_PASSWORD=openstack
SERVICE_TOKEN=openstack
RABBIT_PASSWORD=openstack
MYSQL_HOST=w.x.y.z
RABBIT_HOST=w.x.y.z
GLANCE_HOSTPORT=w.x.y.z:9292
KEYSTONE_AUTH_HOST=w.x.y.z
KEYSTONE_SERVICE_HOST=w.x.y.z
disable_all_services
enable_service mysql
enable_service key
enable_service n-api n-cpu n-net n-cond n-sch n-novnc n-crt n-cauth
这个例子作用是部署一个nova服务节点,并集成到现有的openstack环境。
其中最关键,也是与All-In-One部署不同的地方,就是
MYSQL_HOST=w.x.y.z
RABBIT_HOST=w.x.y.z
GLANCE_HOSTPORT=w.x.y.z:9292
KEYSTONE_AUTH_HOST=w.x.y.z
KEYSTONE_SERVICE_HOST=w.x.y.z
这一段是指定了已部署的openstack环境相关服务地址变量,其中w.x.y.z替换为实际的IP地址。
上面例子中的几个变量意义都很明显,例如MYSQL_HOST就是指定了mysql数据库服务地址。
通过这样配置后,devstack在部署新组件的时候,就会去连接指定地址的服务进行相关配置和初始化,而不会再使用本地地址。
另外需要注意的是,虽然上面的例子只是为了部署nova组件,而mysql和keystone都是利用其他节点上的服务,但还是单独enable了这两个service。
这是因为devstack在为各个组件初始化DB和创建用户的时候,还是先判断了这两个service是否是enable的。
最后造成在部署nova的节点上也安装了mysql,但其实并未用到。
要规避这种情况,可以自行修改devstack脚本,或是利用Phase机制。
版权声明:本文为博主原创文章,未经博主允许不得转载。
页:
[1]