文章目录
[隐藏]

一、脚本简介

Openstack-HA-Install-Shells脚本为本人在Openstack实践过程中总结所得,该脚本使用Shell撰写,用于Openstack高可用集群的部署,实现了Pacemaker、Galera、RabbitMQ、Openstack、Ceph等集群的半自动化部署,可用于中小型规模Openstack云平台的快速部署,本人也基于该脚本完成线上云环境的部署。为提高部署效率,本脚本采用了pssh并行执行命令的形式,但Ceph存储集群的部署仍采用ceph-deploy方式进行,未做并行优化。

二、部署环境

1、软件环境

CentOS7.2+MariaDB+Openstack-Mitaka+Ceph-Jewel

本脚本采用离线安装源安装,示例中已提前准备好CentOS-7.2-X86_64、Openstack-Mitaka、Mariadb-10.1、Ceph-Jewel、EPEL、Ceph-deploy离线安装包,并利用FTP共享,如果采用在线安装源,需修改conf/yum.repos.d/REPO安装源配置。

2、硬件环境

  • 3个控制节点+3个网络节点(也可以与控制节点融合)+至少一个计算节点
  • 管理网、虚拟机网、存储网三个网段
  • 每个节点具备3张网卡,网卡需要统一命名, 默认要求各节点的三个网卡IP尾数相同(脚本自动更正)
  • 额外需要两个IP,用于Openstack Rest API和Redis集群的VIP
  • 每个节点至少一块独立数据盘,用于Ceph OSD盘(可根据实际需求变更)

3、HA部署架构

  • 控制节点集群高可用架构
  • 网络节点高可用架构
  • Ceph统一存储集群

4、部署顺序

  • 基础环境配置:包括SSH配置、网络配置、主机名及hosts修改、时间同步配置、防火墙及SELinux配置、离线Yum安装源配置;
  • Openstack管理集群部署:首先进行Pacemaker集群、Haproxy、Galera集群、Rabbitmq集群、Memcached、Mongodb集群配置,然后在管理集群上配置Openstack的keystone、glance、nova、neutron(其中包括网络节点的高可用集群配置)、dashboard、cinder、ceilometer、aodh服务配置;
  • Openstack计算&存储集群部署:计算节点和存储节点融合,配置包括SSH配置、Ceph-deploy安装、Ceph存储集群配置、Ceph客户端认证、Openstack计算节点服务部署;
  • 维护操作:非必须,包括网络、镜像、虚拟机、云硬盘的云资源创建测试,后期增加计算节点的实用脚本。

三、如何使用

1、部署前准备

规划实际部署环境的HA架构,按照部署环境的软、硬件要求,准备好部署前工作:包括操作系统安装、网络规划、管理网配置、离线安装包的准备。

2、修改部署环境变量

根据实际环境,配置部署变量初始化0-set-config.sh,设置节点主机名、IP、VIP、网卡信息、网段信息、安装源、OSD磁盘信息、密码信息,脚本内容如下:

3、执行安装部署

执行all-in-one.sh脚本进行部署即可,脚本内容如下。

4、注意事项

  • 交互输入

安装过程中,重启节点生效SELinux,SSH配置、设置Mariadb密码过程中需要用户输入,请按照提示输入操作符即可。如设置Mariadb数据库密码:

  • 继续确认

all-in-one.sh会按照顺序安装,每个安装操作之后都有验证操作,使用者应根据验证结果决定是否继续安装,每完成一个安装步骤,都有继续安装提醒确认,任意键继续,或按Ctrl+C退出,如下:

继续安装(这里按回车继续)

退出安装(按Ctrl+C):

 

  • Pcs集群重启

安装Galera集群和Openstack服务过程中,会多次重启Pacemaker集群,会出现安装过程卡住现象,应根据以下情况进行操作:

在停止pacemaker集群(执行pcs cluster stop -all)卡住时(其实不会真正卡住,只是需要等一段时间,后面安装neutron、ceilometer、aodh时pcs资源很多,等待时间比较长),这里可以按一次Ctrl+C结束等待(注意:是按一次,否则按多次就结束安装脚本了)

pcs集群重启成功,脚本会自动监控pcs资源,等最后面的新增资源全部启动后,需要Ctrl+C结束监控(必须结束,否则watch命令无法结束),如下(忽略haproxy-clone资源在其他两个控制节点上Stopped状态):

  • 错误处理

如果中途出现错误,在下一步继续确认提醒时,按Ctrl+C退出当前安装,查找错误原因,重复执行该步骤,成功后,注释all-in-one.sh中已完成的前续操作,重新执行脚本,继续后续安装步骤即可。

四、系列文章

部署脚本的详细说明请参考本博客的的“Openstack云平台脚本部署”系列文章。目录如下:

Openstack云平台脚本部署之概述(零)

Openstack云平台脚本部署之基础环境配置(一)

Openstack云平台脚本部署之Galera高可用集群配置(二)

Openstack云平台脚本部署之RabbitMQ高可用集群部署(三)

Openstack云平台脚本部署之MongoDB配置(四)

Openstack云平台脚本部署之Memcached配置(五)

Openstack云平台脚本部署之Keystone认证服务配置(六)

Openstack云平台脚本部署之Glance镜像服务配置(七)

Openstack云平台脚本部署之Nova计算服务配置(八)

Openstack云平台脚本部署之Neutron网络服务配置(九)

Openstack云平台脚本部署之Dashboard配置(十)

Openstack云平台脚本部署之Cinder块存储服务配置(十一)

Openstack云平台脚本部署之Ceilometer数据收集服务配置(十二)

Openstack云平台脚本部署之Aodh告警服务配置(十三)

Openstack云平台脚本部署之Ceph存储集群配置(十四)

Openstack云平台脚本部署之计算节点服务配置(十五)

Openstack云平台脚本部署之增加计算节点配置(十六)

Openstack云平台脚本部署之测试验证(十七)

Openstack云平台脚本部署之Ganglia监控(十八)

Openstack云平台脚本部署之Nagios监控(十九)

五、问题反馈

脚本源码:https://github.com/zjmeixinyanzhi/Openstack-HA-Install-Shells

个人原创,引用请注明来源,如有问题,欢迎留言交流,相互学习。