2015-10-29 00:00:00
来 源
SDNlab
Openstack
文章较详细的给出了基于CentOS平台进行安装OpenStack后的相关网络配置,相信能给CentOS初学者带来更好的体验.

鉴于,一般OpenStack的开发和体验,都是使用Devstack的方式自动化部署。因此,这里基于自己的实践过程,总结出一份本月15日Release的Liberty完整安装过程。

OpenStack-Liberty极速体验

与其他资料所不同的是,本次安装较详细的给出了安装后的相关网络配置,且基于CentOS平台(相对于Ubuntu系,CentOS系的安装资料挺少;事实上,二者在安装上有些网络区别),相信能给CentOS初学者带来更好的体验。

一、环境

环境:

  1. VMware Workstations中的CentOS 7 Desktop VM;
  2. 一张NAT网卡;
  3. 内存>=4G;
  4. VM的ip地址为10.0.0.9。

二、部署

1、关闭iptables防火墙和selinux;

Shell
1 #  service iptables stop

查看防火墙状态,显示防火墙已关闭:

Shell
12 # service iptables status#/usr/sbin/setenforce 0  ###立刻关闭 SELINUX

2、安装git

Shell
1 yum -y install git

3、准备Devstack

下载代码:

Shell
12 # cd /home# git clone https://git.openstack.org/openstack-dev/devstack --branch=stable/kilo #k版

或者

Shell
1 # git clone https://github.com/openstack-dev/devstack.git -b stable/liberty  #L版 (可以体验L版)

4、需要创建stack用户运行

Shell
12 # cd /home/devstack/tools/# ./create-stack-user.sh

5、修改devstack目录权限,让stack用户可以运行

Shell
12 $ sudo chown -R stack:stack /home/devstack$ sudo chmod 777 /opt/stack –R

6、切换到stack用户下

Shell
12 # su stack# cd /home/devstack

7、进入devstack目录下,创建localrc文件,添加以下内容:

Shell
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 # MiscADMIN_PASSWORD=adminDATABASE_PASSWORD=$ADMIN_PASSWORDRABBIT_PASSWORD=$ADMIN_PASSWORDSERVICE_PASSWORD=$ADMIN_PASSWORDSERVICE_TOKEN=$ADMIN_PASSWORD # Target PathDEST=/opt/stack # Enable LoggingLOGFILE=$DEST/logs/stack.sh.logVERBOSE=TrueLOG_COLOR=TrueSCREEN_LOGDIR=$DEST/logs KEYSTONE_TOKEN_FORMAT=UUID # Novaenable_service n-novnc n-cauth # Neutrondisable_service n-netENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutronENABLED_SERVICES+=,q-lbaas,q-vpn,q-fwaas # Swift#enable_service s-proxy s-object s-container s-accounts#SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5 # CinderVOLUME_GROUP="cinder-volumes"ENABLED_SERVICES+=,cinder,c-api,c-vol,c-sch,c-bak # Ceilometer#enable_service ceilometer-acompute ceilometer-acentral ceilometer-anotification ceilometer-collector ceilometer-api#enable_service ceilometer-alarm-notifier ceilometer-alarm-evaluator # Heatenable_service heat h-api h-api-cfn h-api-cw h-engenable_service tempest # Troveenable_service trove tr-api tr-tmgr tr-cond # Saharaenable_service sahara HOST_IP=10.0.0.9FIXED_RANGE=10.10.0.0/24NETWORK_GATEWAY=10.10.0.1#FLOATING_RANGE=10.0.0.0/24#PUBLIC_NETWORK_GATEWAY=10.0.0.2#Q_FLOATING_ALLOCATION_POOL=start=10.0.0.100,end=10.0.0.150

注意:若需要安装其他服务,请参考其他资料。

8、运行Devstack

Shell
1 ./stack.sh

注意:使用的是stack用户运行。

9、默认Devstack创建 admin和demo两个用户,通过设置环境变量可以进行操作。
admin 用户

Shell
1 source openrc admin admin

demo 用户

Shell
1 source openrc demo demo

10、其他

安装失败时,可以再次执行安装命令。

Shell
1 $  ./unstack.sh && ./stack.sh

安装后,相信多半不能用ip地址直接登录Dashboard。别急,请看下面的设置br-ex部分。

三、安装后的网络配置

1、网络及br-ex桥设置

1)OVS设置
由于在Devstack安装过程中,将br-ex的地址设置成了其他ip,导致出现很多问题,所以需要将原来的br-ex桥清除掉。

Shell
1 $ sudo ovs-vsctl del-br be-ex

将物理网卡eno16777736,即eth0作为br-ex的port,之后创建的虚拟机就可以通过eth0访问网络,能够登陆Dashboard了,Host也可以通过floating ip访问虚拟机。

这里,给出自己的网卡eno16777736和br-ex文件配置内容

Shell
1 # cat ifcfg-eno16777736
Shell
12345 TYPE=OVSPortDEVICE=eno16777736DEVICETYPE=ovsOVS_BRIDGE=br-exONBOOT=yes
Shell
1 # cat ifcfg-br-ex  //该文件需要自己创建
Shell
1234567 TYPE=OVSBridgeDEVICE=br-exDEVICETYPE=ovsBOOTPROTO=staticIPADDR=10.0.0.9NETMASK=255.255.255.0GATEWAY=10.0.0.2
Shell
1 $ sudo ovs-vsctl add-port br-ex eno16777736 ;systemctl restart network

2)验证

注:因为一般VM是通过br-ex网桥的ip出外网的,所以,必须保证能ping通其ip。

  • 关闭Selinux、iptables;
  • 使用ip -a命令,查看br-ex的ip地址,且验证是否能够ping通;
  • 使用ovs-vsctl show命令,查看网桥br-ex的设置情况。这里的eno16777736是我的实际物理网卡,即eth0,如下图所示:
eth0实际物理网卡

3)ip -a查看br-ex ip地址

ip -a查看br-ex ip地址

最后,使用这个ip地址登陆Dashboard!

ip地址登陆Dashboard

2、一些建议

devstack安装trove组件时,会默认下载mysql.qcow2镜像。为了提高安装进度,可以事先自己下载,保存到该目录下/home/devstack/files/,下载地址:http://tarballs.openstack.org/trove/images/ubuntu/mysql.qcow2。

如果你安装和配置成功了,请立即对该虚拟机平台做个快照,方便以后做各种操作后出现问题时,利于恢复;并避免因宿主系统关机,导致的不必要问题。如果还是不幸发生了,请执行如下脚本:

Shell
1 $ cd /devstack ;sh rejoin-stack.sh

四、小结

此次,Liberty版本的变化是较大的,基于Magnum的容器管理项目(对Kubernetes、Mesos和Docker Swarm提供支持);网络编排项目Astara;容器网络项目Kuryr;计费项目CloudKitty;以及汇集了许多流行的应用模板的社区服务目录(Community App Catalog)。这些新服务的加入证明,OpenStack已经在大数据分析、数据集群管理、资源编排等领域不断扩展与完善。

在具体操作上,同样改变了许多,比如命令和网络面板的使用上。总之,更多新的功能,等你体验!

作者简介:徐超:2015——至今,从事OpenStack相关工作。个人倾向于研究OpenStack、SDN和Docker。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。