1、需求和原理说明
有两台openstack环境,都是regionOne ,现在的需求是
将两个region整合在一个dashboard中,其中一个为regino1,一个为region2
2、环境总览
- 主机详情
主机 | 操作系统 | openstack版本 | 原region名 | 新regions名 |
---|---|---|---|---|
10.0.0.101 | CentOS Linux release 7.0.1406 (Core) | kilo | regionOne | regionOne |
10.0.0.102 | CentOS Linux release 7.0.1406 (Core) | kilo | regionOne | regiontwo |
- 说明
本篇中mysql无密码
3、准备工作
1、 备份数据库
因为以后设计到数据库的更改,所以需要提前做好备份
region1
mysqldump -uroot keystone > keystone_101bak.sql
region2
mysqldump -uroot keystone > keystone_102bak.sql
2、操作前的测试
1、两个region的服务是否正常
nova-manage service list
keystone endpoint-list
2、两个region的dashboad的各个选项或者按钮是否有错误(测试api的调用)
3、两个region使用普通用户是否能顺利创建出虚拟机
4、region重命名
regiontwo的设置
- region表添加regiontwo条目, 并将所有endpoin设为regiontwo
mysql -uroot -e "insert into keystone.region(id,parent_region_id,extra,url) values ('regiontwo',NULL,'{}',NULL);"
update endpoint set region_id='regiontwo';
- 验证是否生效
source keystonerc
keystone endpoint-list
重新验证regiontwo
创建个虚拟机,查看是否正常导出regiontwo的keystone的service和endpoint表
mysqldump -uroot keystone endpoint > endpoint_102.sql
mysqldump -uroot keystone service > service_102.sql
- 修改导出的两个表
删除导出数据表文件中的DROP 条目(因为后面会将regiontwo导出的表添加导入到regionOne中,所以不能覆盖)
regionOne的设置
- keystone数据库的region添加regiontwo条目
mysql -uroot -e "insert into keystone.region(id,parent_region_id,extra,url) values ('regiontwo',NULL,'{}',NULL);"
mysql -uroot -e "select * from keystone.region;"
+-----------+-------------+------------------+-------+------+
| id | description | parent_region_id | extra | url |
+-----------+-------------+------------------+-------+------+
| regionOne | | NULL | {} | NULL |
| regiontwo | | NULL | {} | NULL |
+-----------+-------------+------------------+-------+------+
- 将regiontwo的endpoint和service表导入到regionOne中
mysql -uroot keystone < endpoint_102.sql
mysql -uroot keystone < service_102.sql
- 修改数据库,将导入的regiontwo的keystone的endpoint url(35357和5000端口)
地址修改为regionone
- 验证
查看endpoint
登录web界面查看是否有两个region
5、修改regiontwo设置
修改regiontwo的openstack各个组件的keystone的endpoint
修改endpoint
sed -i 's/192.168.100.102:35357/192.168.100.101:35357/' /etc/nova/nova.conf
sed -i 's/192.168.100.102:5000/192.168.100.101:5000/' /etc/nova/nova.conf
sed -i 's/192.168.100.102:35357/192.168.100.101:35357/' /etc/glance/glance-api.conf
sed -i 's/192.168.100.102:5000/192.168.100.101:5000/' /etc/glance/glance-api.conf
sed -i 's/192.168.100.102:35357/192.168.100.101:35357/' /etc/glance/glance-registry.conf
sed -i 's/192.168.100.102:5000/192.168.100.101:5000/' /etc/glance/glance-registry.conf
sed -i 's/192.168.100.102:35357/192.168.100.101:35357/' /etc/neutron/neutron.conf
sed -i 's/192.168.100.102:5000/192.168.100.101:5000/' /etc/neutron/neutron.conf
sed -i 's/192.168.100.102:5000/192.168.100.101:5000/' /etc/neutron/metadata_agent.ini
sed -i 's/192.168.100.102:35357/192.168.100.101:35357/' /etc/cinder/api-paste.ini
sed -i 's/192.168.100.102:5000/192.168.100.101:5000/' /etc/cinder/api-paste.ini
修改keystone的admin_pass
配置(和regionone)相同
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken admin_password a654587d34c1433b
openstack-config --set /etc/nova/nova.conf keystone_authtoken admin_password 6e9b8624dcc8460b
openstack-config --set /etc/cinder/api-paste.ini filter:authtoken admin_password fe71d1ce4ff44131
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT admin_password a654587d34c1433b
openstack-config --set /etc/neutron/api-paste.ini filter:authtoken admin_password a654587d34c1433b
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken admin_password cfbe16dd7a0e4094
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken admin_password cfbe16dd7a0e4094
修改完重启regiontwo的服务(最好重启下服务器)
openstack-service restart nova
openstack-service restart neutron
openstack-service restart glance
openstack-service restart cinder
测试
登录regionone的dashboard,通过切换region,测试各个功能是否正常使用