Icehouse
默认的region
是RegionOne
。因为默认region
的存在,无论是在命令行,还是在web上,我们都不需要指定region
。在命令行中你还可以用os-region-name
来指定region,在web中你就根本找不到与region相关的东西。
因为这样,很多人都不了解region的概念,如果你已经使用过openstack,并且不知道在哪看到了可以设置多region这样一件事,所以想自己部署一个看看,那么你可以把这篇文章读完。
因为只是一个实验,我们怎么简单怎么来。网上有很多快速部署openstack环境的教程,首先你需要按照教程部署两套完整的openstack环境。有了这两套环境,我们稍微改一下配置即可。
##增加endpoint
选择一台机器作为RegionOne,另一台则为RegionTwo。我们需要在RegionOne上增加Regiontwo上的service的endpoint。
如图,可以看到Horizon,Keystone和Swift是公用的,我们只需要增加这些服务之外的服务的endpoint
如图我们需要增加cinder,ec2,glance,neutron,nova的endpoint。添加endpoint的命令是:
keystone endpoint-create --region RegionTwo
--service <service>
--publicurl <public-url>
--adminurl <admin-url>
--internalurl <internal-url>
这样添加好了之后,工作就完成一半了。
如果就这样打开RegionOne的web,会发现在页面上出现了一个之前没有的选择框,可以选择RegionOne或者RegionTwo,但是选了Regiontwo之后,按概况或者云主机之类的按钮,会出现各种无权限的错误,好蛋疼。其实这时候我们的web还没有配置好。
##配置horizon
打开文件
vim /etc/openstack-dashboard/local_settings.py
找到
# For multiple regions uncomment this configuration, and add (endpoint, title).
# AVAILABLE_REGIONS = [
# ('http://cluster1.example.com:5000/v2.0', 'cluster1'),
# ('http://cluster2.example.com:5000/v2.0', 'cluster2'),
# ]
去掉注释,改成这样:
# For multiple regions uncomment this configuration, and add (endpoint, title).
AVAILABLE_REGIONS = [
('http://10.10.7.208:5000/v2.0', 'RegionOne'),
('http://10.10.7.200:5000/v2.0', 'RegionTwo'),
]
我的两台环境是10.10.7.208
和10.10.7.200
,你需要改成你的环境的ip。后面的5000端口不需要改,5000是keystone监听的端口,剩下的都不需要改。
改完之后,保存,重启web
service apache2 restart
#这里也是,如果你不是用的apache,请改成你重启web的方式
这时候再登录就一切OK啦!
右上角的region控制你登录的是哪个region,中间的那个是用户自由切换的用的。