OpenStack Yoga 双节点自动化部署实战指南
从零构建企业级私有云平台
云计算已成为现代IT基础设施的核心支柱,而OpenStack作为最成熟的开源云计算平台之一,在企业私有云建设中占据重要地位。本文将带您完成OpenStack Yoga版本在CentOS 7.2环境下的全自动化部署,通过精心设计的Shell脚本实现控制节点与计算节点的快速搭建,为后续的云平台开发与测试奠定坚实基础。
为什么选择自动化部署?传统手动部署OpenStack需要执行数百条命令,耗时且容易出错。通过脚本化部署,我们不仅能确保环境的一致性,还能实现部署过程的可重复性,特别适合需要频繁重建环境的开发测试场景。
1. 环境规划与准备
1.1 硬件资源配置建议
在开始部署前,我们需要合理规划硬件资源。以下是经过生产环境验证的配置方案:
| 节点类型 | vCPU | 内存 | 存储 | 网卡数量 | 特殊要求 |
|---|---|---|---|---|---|
| 控制节点 | 4 | 8GB | 100GB | 2 | 需开启虚拟化扩展 |
| 计算节点 | 8 | 16GB | 200GB | 2 | 必须支持硬件虚拟化 |
提示:计算节点的存储建议分为系统盘(50GB)和数据盘(150GB),数据盘将用于实例存储
1.2 网络拓扑设计
合理的网络规划是OpenStack稳定运行的前提。我们采用典型的双网卡方案:
- 管理网络:192.168.100.0/24
- Controller: 192.168.100.10
- Compute: 192.168.100.20
- 数据网络:192.168.200.0/24 (用于实例间通信)
# 示例网络配置(controller节点) TYPE=Ethernet BOOTPROTO=static DEVICE=ens33 ONBOOT=yes IPADDR=192.168.100.10 NETMASK=255.255.255.0 GATEWAY=192.168.100.1 # 第二网卡配置(compute节点) TYPE=Ethernet BOOTPROTO=static DEVICE=ens34 ONBOOT=yes IPADDR=192.168.200.20 NETMASK=255.255.255.01.3 系统基础配置
在所有节点上执行以下基础配置:
- 设置主机名并配置hosts解析
- 关闭SELinux和防火墙
- 配置时间同步(建议使用chrony)
- 创建部署专用账户并配置sudo权限
# 控制节点主机名设置 hostnamectl set-hostname controller # 配置hosts文件 cat >> /etc/hosts << EOF 192.168.100.10 controller 192.168.100.20 compute EOF # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 禁用SELinux setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config2. 自动化部署脚本开发
2.1 控制节点部署脚本
控制节点脚本需要完成以下核心功能:
- 基础依赖安装
- 数据库服务配置
- 认证服务(Keystone)部署
- 镜像服务(Glance)配置
- 计算管理服务(Nova)安装
- 网络服务(Neutron)部署
- 仪表盘(Dashboard)安装
#!/bin/bash # controller_deploy.sh # 定义环境变量 CTRL_IP=192.168.100.10 COMPUTE_IP=192.168.100.20 RABBIT_PASS=SecureRabbitPass MYSQL_PASS=SecureMySQLPass ADMIN_PASS=000000 DEMO_PASS=000000 # 安装基础服务 yum install -y centos-release-openstack-yoga yum install -y python-openstackclient openstack-selinux # 配置MySQL yum install -y mariadb mariadb-server python2-PyMySQL systemctl enable mariadb systemctl start mariadb mysql_secure_installation <<EOF y $MYSQL_PASS $MYSQL_PASS y y y y EOF # 安装消息队列 yum install -y rabbitmq-server systemctl enable rabbitmq-server systemctl start rabbitmq-server rabbitmqctl add_user openstack $RABBIT_PASS rabbitmqctl set_permissions openstack ".*" ".*" ".*" # 安装Memcached yum install -y memcached python-memcached systemctl enable memcached systemctl start memcached # 安装Keystone yum install -y openstack-keystone httpd mod_wsgi ...2.2 计算节点部署脚本
计算节点脚本主要处理:
- 计算服务(nova-compute)安装
- 网络代理(neutron-agent)配置
- 存储支持配置
#!/bin/bash # compute_deploy.sh # 定义环境变量 CTRL_IP=192.168.100.10 COMPUTE_IP=192.168.100.20 # 安装基础组件 yum install -y centos-release-openstack-yoga yum install -y python-openstackclient openstack-selinux # 配置Nova计算服务 yum install -y openstack-nova-compute crudini --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:SecureRabbitPass@$CTRL_IP crudini --set /etc/nova/nova.conf api auth_strategy keystone ...3. 服务验证与排错
3.1 核心服务状态检查
部署完成后,需要验证各服务是否正常运行:
# 检查Nova服务状态 openstack compute service list # 检查Neutron代理状态 openstack network agent list # 检查Glance镜像列表 openstack image list3.2 常见问题解决方案
在部署过程中可能会遇到以下典型问题:
数据库连接失败
- 检查MySQL绑定地址
- 验证防火墙规则
- 确认用户名密码正确
消息队列不可达
- 验证RabbitMQ服务状态
- 检查SELinux上下文
- 测试端口5672是否开放
Dashboard无法访问
- 检查httpd服务状态
- 验证SELinux布尔值设置
- 查看/var/log/httpd/error_log日志
3.3 性能调优建议
生产环境部署需要考虑以下优化措施:
- 数据库优化:调整InnoDB缓冲池大小
- 消息队列:配置镜像队列提高可靠性
- 网络性能:启用巨帧(Jumbo Frame)支持
- 存储优化:使用ceph替代本地存储
4. 平台基础功能测试
4.1 创建第一个实例
通过命令行创建测试实例:
# 创建测试网络 openstack network create test-net openstack subnet create --network test-net --subnet-range 192.168.210.0/24 test-subnet # 创建安全组规则 openstack security group rule create --proto icmp default openstack security group rule create --proto tcp --dst-port 22 default # 启动测试实例 openstack server create --flavor m1.tiny --image cirros --nic net-id=test-net test-instance4.2 Dashboard功能验证
访问Dashboard(http://controller-ip/dashboard)并验证:
- 使用admin/000000登录
- 检查各服务状态
- 尝试通过界面创建实例
- 验证网络拓扑展示
5. 进阶配置与扩展
5.1 集成Cinder块存储
为平台添加持久化存储能力:
# 控制节点安装 yum install -y openstack-cinder # 计算节点配置 yum install -y lvm2 pvcreate /dev/sdb vgcreate cinder-volumes /dev/sdb5.2 启用Swift对象存储
配置分布式对象存储服务:
# 安装Swift代理 yum install -y openstack-swift-proxy python-swiftclient # 配置存储节点 yum install -y xfsprogs rsync mkfs.xfs /dev/sdc mount /dev/sdc /srv/node/sdc5.3 多计算节点扩展
添加额外计算节点到集群:
- 在新节点上执行compute_deploy.sh
- 在控制节点上验证新计算节点注册
- 配置资源聚合(aggregates)实现节点分组
openstack aggregate create high-mem-group openstack aggregate add host high-mem-group compute02构建稳定可靠的云平台
通过本文的自动化部署方案,您已经建立起一个功能完整的OpenStack Yoga环境。这个基础平台可以进一步扩展为:
- 开发测试云环境
- 企业内部私有云
- 云计算教学实验平台
- 混合云架构的私有部分
实际部署中发现,自动化脚本虽然能解决90%的配置问题,但仍需注意不同硬件环境下的适配性。特别是在网络配置部分,不同网卡命名规则可能导致脚本需要相应调整。建议首次部署时保持终端会话开启,随时观察部署日志输出。