我是从2016年8月22日开始接触openstack概念,开始寻找部署openstack的工具,到现在刚好过去了2个月。其间,我用到了Mirantis 公司的fuel,初步研究了正式版的openstack,然而最多的经历还是花在了devstack上。
我个人的理解,devstack是一款使用screen 模式运行openstack各个基本模块的自动化安装部署工具软件。它可以把openstack集成安装在一台机器或者虚拟机上,在安装前使用一个local.conf配置文件,在安装中运行一个全自动化的高级脚本,在安装后可以使用其进行openstack调试和小型试验。
那这篇博客也按照安装前,安装时和安装后来说吧。
1. 安装前:
我测试了ubuntu 14.04 LTS和16.04 LTS,两个版本都可以成功安装devstack,我是在裸机上试验。安装前首先需要git下来devstack的各种文件,参考 http://devstack.org. git到官网文件夹后,需要创建并配置一个叫local.conf的文件,在这个文件中,我测试过的就是指定 Host IP, 指定使用哪种网络,指定floating ip范围等等。下面贴上经测试可用的配置例子:
+++++++++++++++++++++++
[[local|localrc]]
DATABASE_PASSWORD=pass
ADMIN_PASSWORD=pass
SERVICE_PASSWORD=pass
SERVICE_TOKEN=pass
RABBIT_PASSWORD=pass
HOST_IP=134.124.108.112
SERVICE_HOST=134.124.108.112
MYSQL_HOST=134.124.108.112
RABBIT_HOST=134.124.108.112
GLANCE_HOSTPORT=134.124.108.112:9292
disable_service n-net
ENABLED_SERVICES+=,q-svc,q-dhcp,q-meta,q-agt,q-13
## Neutron options
Q_USE_SECGROUP=True
FLOATING_RANGE="134.124.108.0/24"
FIXED_RANGE="10.0.0.0/24"
Q_FLOATING_ALLOCATION_POOL=start=134.124.108.120,end=134.124.108.130
PUBLIC_NETWORK_GATEWAY="134.124.108.1"
PUBLIC_INTERFACE=eno1
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex
++++++++++++++++++++++++++
(说明:hostIP就是安装devstack电脑的IP地址;floatingIP是跟主机同一网段的ip地址,目的是为了外网电脑可以与openstack内网VMs通信;fixedRange 是openstack内网的ip地址;publicBridge是电脑与外网通信的网卡,由于devstack会自动把网卡配置成桥接模式,所以此处使用此网卡)
2. 安装中:
配置好后,运行stack.sh,开始自动安装过程。值得一提的是,这个安装过程可能会出现各种意想不到的bug,导致中途停止,即使你完成了百分之90,也会前功尽弃,而且有时原因不得而知。举个例子,同样的配置,同样的电脑,可能今天和明天运行同样的命令,会失败和成功。所以,推荐多尝试安装。每次尝试安装前要运行unstack.sh和重启电脑。遇到实在无法成功,就重新装一遍操作系统。
3.安装后:
安装成功后,根据提示可以用浏览器打开openstack的UI操作界面,可以在UI上完成各种控制和功能,运行虚拟机等等。
需要注意的是,正确的安装应该电脑的网卡和新生成的br-ex网卡具有相同的IP地址。我在安装的时候曾经出现电脑的物理网卡在安装后ip地址没有,只有br-ex有ip,这种情况的后果就是在安装后的某个较短时间内,电脑与外网会断掉,从而导致电脑上不了网,更别提openstack里的VMs。 分析我的失败原因,可能是因为我的主机ip是134.124.108.255,虽然所处网络的掩码是255.255.254.0,所以这是一个可用的ip而不是一个广播ip,但是devstack安装程序可能不这么认为,导致了配置的失败。所以正常的ip应该没问题。
如果生成的网络配置没有问题的话,我们就可以接下来控制openstack,可以用UI也可以用CLI(http://docs.openstack.org/cli-reference/common/cli-overview.html)。创建VM后,赋予floating ip后,理论上来说就应该是实现VM与外网电脑的相互通信。
注意:安装后的电脑不能重启,否则会丢失网络桥接的那些配置,导致网络出问题,无法连接外网。我将其归结为devstack的缺陷。
总结:总觉得可能要开始部署真正的openstack,用上三四台机器。这一天总要到来,加油