为减少大家在部署openstack上花费的时间,结合官网教程和网上的各类安装指南,博主给出了一套实用的脚本来简化安装。
文件目录为:
config.ini: 全局配置文件
setupControllerNode.sh:安装控制节点上的组件
addNetworkNode.sh: 安装网络节点上的组件,可以部署多个网络节点提高可用性
addComputeNode.sh: 安装计算节点上的组件
network-creater.sh: 在控制节点上创建网络
先看一下节点的网络规划图:
这里搭建了一个本地的局域网源,减少从网络获取组件的时间,以加快安装。
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。
3个虚拟机的设置均为双网络适配器,适配器1的连接模式为VMnet4(仅主机模式),适配器2的连接模式为桥接。
开始部署(root用户):
1、配置config.ini
根据实际情况定义源地址、控制节点主机名和ip、公开网络和外部网络信息、私有网络信息、数据库用户信息以及openstack用户信息等
2、安装控制节点
执行脚本setupControllerNode.sh,只需要输入管理网络接口和公开网络接口名称,回车取默认值,而主机名与ip均在config.ini的[CONTROLLER_NODE]节中。
经过一段时间的执行(内网源会快很多),安装完毕,会从源服务器上获取cirros镜像并上传上去,同时也会在/root目录下生成openrc.sh脚本,source后,通过keystone、glance、neutron、nova-manage等命令直接查看相应信息。
如查看所有的openstack用户:
3、安装网络节点
执行脚本addNetworkNode.sh,需要输入主机名、管理网络接口名和IP以及公开网络接口名和IP。
在脚本的最后,会创建网桥br-ex,并添加eth1到该网桥上,所以会把eth1设置为混杂模式,先前设置ip仅仅是为了能从源服务器下载安装包。
4、创建网络(在控制节点上执行)
执行network-creater.sh,从config.ini读取公开网络信息,包括浮动ip的开始和结束以及私有网络。
创建了一个路由器,一端连接到外部网络上,一端连接到内部网络上。
5、安装计算节点
执行addComputeNode.sh,输入主机名、虚拟化类型(虚拟机上使用qemu,真机上使用kvm)、管理网络接口名和IP以及公开网络接口名和IP。
计算节点安装完成
6、dashboard
在浏览器中输入172.17.200.0/horizon或者192.168.200.0/horizon,以admin/ADMIN_PASS登陆。
查看网络拓扑,可以看到创建的外部网络和内部网络以及路由器。
查看镜像列表,可以看到脚本自动上传的cirros镜像
通过镜像,直接运行云主机,类型使用m1.tiny,网络使用user-net。
云主机创建成功
点击更多,查看控制台,通过vnc登陆,输入cirros/cubswin:),可查看IP地址和路由信息。
可以看到它的默认网关是10.20.0.1,可以ping通公开网络上的主机。
给云主机(实例)分配浮动IP。
外部可以ping通云主机的浮动IP
外部通过putty ssh登陆到云主机。
至此,部署成功。
注意:对于没有内网源,但是可以上外网的环境,可以修改config.ini里[SOURCES_SERVER] 的ip值,如使用搜狐源mirrors.sohu.com,同时去除setupControllerNode.sh脚本中最后上传镜像的内容,直接在dashboard中从互联网上传镜像或者下载后从本地上传。
可从以下网盘下载镜像。
链接: http://pan.baidu.com/s/1nt85iOD 密码: f9gg
---------------------------------------------------------
可从以下网盘下载脚本,密码为博客名
链接: http://pan.baidu.com/s/1o6l28aA 密码: 8ey2
本文出自 “破万卷书” 博客,谢绝转载!