fdf 发表于 2015-10-11 07:57:25

使用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]
查看完整版本: 使用devstack部署多节点openstack