使用devstack部署多节点openstack

来源:互联网 发布:大数据下的尼尔森公司 编辑:程序博客网 时间:2024/06/01 08:42

在使用openstack环境的过程中,时常会根据服务需求调整部署的服务。

这就涉及到添加新的节点到原有的openstack环境中。


大家知道devstack一般用来部署All-In-One的环境,其实devstack也能用来部署多节点环境。

通过local.conf文件的配置就能达到这一目的。

下面给出一个简单例子:

[[local|localrc]]DATABASE_PASSWORD=openstackADMIN_PASSWORD=openstackSERVICE_PASSWORD=openstackSERVICE_TOKEN=openstackRABBIT_PASSWORD=openstackMYSQL_HOST=w.x.y.zRABBIT_HOST=w.x.y.zGLANCE_HOSTPORT=w.x.y.z:9292KEYSTONE_AUTH_HOST=w.x.y.zKEYSTONE_SERVICE_HOST=w.x.y.zdisable_all_servicesenable_service mysqlenable_service keyenable_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.zRABBIT_HOST=w.x.y.zGLANCE_HOSTPORT=w.x.y.z:9292KEYSTONE_AUTH_HOST=w.x.y.zKEYSTONE_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 0