本地搭建openstack环境最方便的方式还是使用虚拟机,目前主流的虚拟化软件有vmware workstation和oracle virtualbox,推荐使用virtualbox,虽然没有workstation功能全面但免费轻量,完全能够满足需求。网络配置是openstack中比较复杂的内容,即使使用devstack这种自动化工具搭建也不是件容易的事,一开始参照网上别人的经验反复尝试,单网卡,双网卡,三网卡,始终没有成功,创建的虚拟机总是不能和外网通信,只能和宿主机互通。后来又反过头仔细看官方文档终于搞定,其实官网上的主流程只有简单的两步,这个在其他资料里都反复提起,没有更进一步的参考价值,关键还要看一下那些相关的tips,会有很大帮助。
一、环境配置:
virtualbox+ubuntu14.04,单网卡,虚拟机内存至少4G。
openstack验证版本为kilo,网络模式使用neutron。
二、搭建步骤:
1、 为virtuabox虚拟机添加1块hostonly的网卡并开启混杂模式,同时宿主机网卡需要配置共享上网,否则openstack创建的虚拟机无法和外网通信,网卡配置如下:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.137.101
netmask 255.255.255.0
gateway 192.168.137.1
dns-nameservers192.168.137.1
2、 电信的网络建议修改ubuntu的源为163的源,速度较快,如果是联通的网络,使用中国官方源速度也可以。
deb http://mirrors.163.com/ubuntu/trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/trusty-proposed main restricted universe multiverse
debhttp://mirrors.163.com/ubuntu/ trusty-backports main restricted universemultiverse
3、 安装git软件包
apt-get install git -y
4、 下载devstack资源库并指定要安装的openstack版本,地址推荐使用http://github.com,其他git源经常无法访问到网络。
git clone http://github.com/openstack-dev/devstack -b stable/kilo
5、 在devstack目录创建local.conf文件定制openstack要安装的组件和账户密码,文件内容参考官网neutron章节http://docs.openstack.org/developer/devstack/guides/neutron.html做了适当修改,其中增加了murano组件也安装成功。
[[local|localrc]]
HOST_IP=192.168.137.101
SERVICE_HOST=192.168.137.101
MYSQL_HOST=192.168.137.101
RABBIT_HOST=192.168.137.101
GLANCE_HOSTPORT=192.168.137.101:9292
#password
SERVICE_TOKEN=azertytoken
ADMIN_PASSWORD=nomoresecrete
MYSQL_PASSWORD=stackdb
RABBIT_PASSWORD=stackqueue
SERVICE_PASSWORD=$ADMIN_PASSWORD
# Install the tempest test suite
enable_service tempest
# Nova
enable_service n-novnc n-cauth
# Enable Heat
enable_service heat h-api h-api-cfnh-api-cw h-eng
# Enable Murano
enable_service murano murano-apimurano-engine
#Enable Neutron
disable_service n-net
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron
# Neutron options
Q_USE_SECGROUP=True
FLOATING_RANGE="192.168.137.0/24"
FIXED_RANGE="10.0.0.0/24"
Q_FLOATING_ALLOCATION_POOL=start=192.168.137.250,end=192.168.137.254
PUBLIC_NETWORK_GATEWAY="192.168.137.1"
Q_L3_ENABLED=True
PUBLIC_INTERFACE=eth0
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex
6、 执行stack.sh,如果是root用户会提示切换到stack用户,按照提示执行相应的脚本创建stack用户,然后将devstack的用户权限更改为stack。
chown -R stack:stack devstack
7、 安装过程中如果遇到网络问题导致某些文件下载失败,可以手动下载到指定目录,重新执行stack.sh,如果提示已有实例在运行,需要先执行unstack.sh清理环境。
8、由于virtualbox重启后会按照网卡配置恢复网络,ip和网关不能上移到br-ex网桥,这里可以在/etc/rc.local中exit 0之前增加如下内容:
ifconfig eth0 0
ifconfig br-ex 192168.137.101/24
route add default gw 192.168.137.1