为减少大家在部署openstack上花费的时间,结合官网教程和网上的各类安装指南,博主给出了一套实用的脚本来简化安装。

        文件目录为:

  脚本化自动部署openstack_脚本

        config.ini:                       全局配置文件

        setupControllerNode.sh:安装控制节点上的组件

        addNetworkNode.sh:          安装网络节点上的组件,可以部署多个网络节点提高可用性

        addComputeNode.sh:          安装计算节点上的组件

        network-creater.sh:        在控制节点上创建网络

        先看一下节点的网络规划图:

  脚本化自动部署openstack_openstack_02

        这里搭建了一个本地的局域网源,减少从网络获取组件的时间,以加快安装。

        openstakck的各个节点都是双网卡,网卡0连接到172.17.0.0/16网络上,既是管理网络,也是实例之间通信的数据网络。

        本地局域网192.168.0.0/16作为公开网络的同时也作为外部网络,源服务器连接到此网络上。

        部署采用单机+vmware+ubuntu14.04-64-server+openstack-icehouse,首先修改VMWare的虚拟网络,将VMnet4网络设置为172.17.0.0/16

        脚本化自动部署openstack_自动化_03

        3个虚拟机的设置均为双网络适配器,适配器1的连接模式为VMnet4(仅主机模式),适配器2的连接模式为桥接。

        脚本化自动部署openstack_openstack_04

开始部署(root用户):

1、配置config.ini

        根据实际情况定义源地址、控制节点主机名和ip、公开网络和外部网络信息、私有网络信息、数据库用户信息以及openstack用户信息等

2、安装控制节点

        执行脚本setupControllerNode.sh,只需要输入管理网络接口和公开网络接口名称,回车取默认值,而主机名与ip均在config.ini的[CONTROLLER_NODE]节中。

        脚本化自动部署openstack_脚本_05

        经过一段时间的执行(内网源会快很多),安装完毕,会从源服务器上获取cirros镜像并上传上去,同时也会在/root目录下生成openrc.sh脚本,source后,通过keystone、glance、neutron、nova-manage等命令直接查看相应信息。

        脚本化自动部署openstack_自动化_06

        如查看所有的openstack用户:

        脚本化自动部署openstack_vmware_07

3、安装网络节点

        执行脚本addNetworkNode.sh,需要输入主机名、管理网络接口名和IP以及公开网络接口名和IP。

        脚本化自动部署openstack_vmware_08

        在脚本的最后,会创建网桥br-ex,并添加eth1到该网桥上,所以会把eth1设置为混杂模式,先前设置ip仅仅是为了能从源服务器下载安装包。

        脚本化自动部署openstack_自动化_09

4、创建网络(在控制节点上执行)

        执行network-creater.sh,从config.ini读取公开网络信息,包括浮动ip的开始和结束以及私有网络。

        脚本化自动部署openstack_脚本_10

        创建了一个路由器,一端连接到外部网络上,一端连接到内部网络上。

        脚本化自动部署openstack_部署_11

5、安装计算节点

        执行addComputeNode.sh,输入主机名、虚拟化类型(虚拟机上使用qemu,真机上使用kvm)、管理网络接口名和IP以及公开网络接口名和IP。

        脚本化自动部署openstack_脚本_12

        计算节点安装完成

        脚本化自动部署openstack_自动化_13

6、dashboard

        在浏览器中输入172.17.200.0/horizon或者192.168.200.0/horizon,以admin/ADMIN_PASS登陆。

        脚本化自动部署openstack_部署_14

        查看网络拓扑,可以看到创建的外部网络和内部网络以及路由器。

        脚本化自动部署openstack_vmware_15

        查看镜像列表,可以看到脚本自动上传的cirros镜像

        脚本化自动部署openstack_自动化_16

        通过镜像,直接运行云主机,类型使用m1.tiny,网络使用user-net。

  脚本化自动部署openstack_vmware_17

        脚本化自动部署openstack_vmware_18

        云主机创建成功

        脚本化自动部署openstack_vmware_19

        点击更多,查看控制台,通过vnc登陆,输入cirros/cubswin:),可查看IP地址和路由信息。

        脚本化自动部署openstack_openstack_20 

        脚本化自动部署openstack_部署_21

        可以看到它的默认网关是10.20.0.1,可以ping通公开网络上的主机。

        脚本化自动部署openstack_openstack_22

        给云主机(实例)分配浮动IP。

        脚本化自动部署openstack_自动化_23

        外部可以ping通云主机的浮动IP

        脚本化自动部署openstack_vmware_24

        外部通过putty ssh登陆到云主机。

        脚本化自动部署openstack_部署_25

        至此,部署成功。

         

        注意对于没有内网源,但是可以上外网的环境,可以修改config.ini里[SOURCES_SERVER] 的ip值,如使用搜狐源mirrors.sohu.com,同时去除setupControllerNode.sh脚本中最后上传镜像的内容,直接在dashboard中从互联网上传镜像或者下载后从本地上传。

        可从以下网盘下载镜像。

        链接: http://pan.baidu.com/s/1nt85iOD 密码: f9gg

        脚本化自动部署openstack_脚本_26


---------------------------------------------------------

可从以下网盘下载脚本,密码为博客名

链接: http://pan.baidu.com/s/1o6l28aA 密码: 8ey2