OpenStack 私有云平台搭建完整指南(国赛实战版)
2023 年我参加了全国职业技能大赛「私有云搭建」赛项,这篇文章是我从备战到实践总结出的 OpenStack 平台搭建完整流程。
无论你是准备比赛,还是想学习企业级私有云搭建,这篇都能帮你少走弯路。
背景
全国职业技能大赛「私有云」赛项主要考察选手在规定时间内,基于 CentOS 7.9 + 先电 IaaS 平台(OpenStack Train 版)搭建完整私有云平台的能力。
比赛的核心是速度和准确性——不是让你从零编译 OpenStack,而是用官方提供的脚本快速部署,然后在平台上完成各类题目。
技术栈:
- 操作系统:CentOS 7.9(CentOS-7-x86_64-DVD-2009.iso)
- IaaS 平台:先电 chinaskills_cloud_iaas_v2.0.3(基于 OpenStack Train 版)
- 架构:双节点(Controller 控制节点 + Compute 计算节点)
一、比赛环境说明
比赛现场一般提供三个资源:
| 资源 | 说明 |
|---|---|
| OpenStack 平台 | 提供 IP/账号/密码,登录后创建云主机答题 |
| 答题平台 | 提供题目,必须提交当前题才能做下一题,提交后立即显示得分 |
| 文件服务器 | 提供所有软件包(yum 源基于 http 搭建) |
答题规则关键点:
- 答题平台提交时需要填 用户名(root)、密码(000000)、IP 地址
- 判分机制:只要提交时虚拟机上有正确答案就得分,即使后面搭建失败也不影响已得分
- 搭建失败不用慌,快速搭建到题目需要的部分即可
二、基础配置
2.1 配置主机名和域名解析
1 | # 控制节点 |
云主机默认没有 selinux 和防火墙,不用处理。
三、搭建 YUM 源
比赛用文件服务器通过 http 挂载 yum 源。假设文件服务器 IP 是 10.60.2.20:
1 | [root@controller ~]# cat > /etc/yum.repos.d/http.repo << EOF |
正常会显示 centos 和 iaas 两个源,包数量约 5000+。
1 | # 传给计算节点 |
四、修改环境变量 openrc.sh
先安装 iaas 主包:
1 | [root@controller ~]# yum install openstack-iaas -y |
4.1 批量去除注释
1 | [root@controller ~]# sed -i -e 's/^#//'g /etc/openstack/openrc.sh |
4.2 批量修改密码为 000000
1 | [root@controller ~]# sed -i -e 's/PASS=/PASS=000000/'g /etc/openstack/openrc.sh |
4.3 关键参数修改
打开 /etc/openstack/openrc.sh,重点改这几个:
1 | #--------------------system Config--------------------## |
1 | # 传给计算节点 |
五、计算节点分区
重要坑: 云主机用 cinder 挂载的硬盘启动后默认挂载在 /mnt 下,分区前必须先 umount!
这个版本多了 manila 文件共享服务,需要分三个区:
1 | # 先取消挂载 |
验证:
1 | [root@compute ~]# lsblk |
六、脚本安装
6.1 初始化环境
两台节点都要执行:
1 | [root@controller ~]# iaas-pre-host.sh |
必须重启! 脚本执行完会提示重启,否则 rabbitmq 服务会报错。重启后用 SSH 重新连接。
6.2 安装控制节点服务(按顺序!)
核心原则:先装完 Controller 所有服务,再装 Compute!顺序错了会出问题。
1 | [root@controller ~]# iaas-install-mysql.sh |
6.3 安装计算节点服务
控制节点全部装完后,再装计算节点:
1 | [root@compute ~]# iaas-install-nova-compute.sh |
七、验证平台
安装完成后,浏览器访问 Dashboard:
1 | http://10.60.3.7/dashboard |
- 账号:
admin - 密码:
000000(或你在 openrc.sh 里设的 ADMIN_PASS)
能看到登录界面就说明基础平台搭建成功。
比赛实战经验
1. 时间分配
| 阶段 | 建议时间 |
|---|---|
| 环境准备 + YUM 源 | 10 分钟 |
| openrc.sh 配置 | 5 分钟 |
| 分区 + 脚本初始化 | 10 分钟 |
| 安装平台服务 | 30-40 分钟 |
| 答题 | 剩余时间 |
2. 常见踩坑
脚本执行失败? 多数是环境变量未加载完就执行了下一步。解决:每个脚本执行前手动加载一次:
1 | [root@controller ~]# source /etc/openstack/openrc.sh |
| 问题 | 解决办法 |
|---|---|
| 脚本报错连不上数据库 | 检查 mysql 服务:systemctl status mariadb |
| nova 服务起不来 | 检查 rabbitmq:systemctl status rabbitmq-server |
| 网络服务异常 | 确认 INTERFACE_NAME 填的是第二张网卡 |
| 搭到一半失败 | 不用重来,快速重跑失败的脚本即可 |
3. 2023 年参赛心得
参加这场比赛让我深刻理解了:
- 私有云的完整架构:从认证(Keystone)到计算(Nova)、网络(Neutron)、存储(Cinder/Swift),每个组件各司其职
- 运维的核心素养:细心、耐心、有序——一个配置错误可能导致整个平台起不来
- 企业级思维:OpenStack 是很多企业私有云的基础,掌握它对未来职业发展很有价值
虽然比赛过程很紧张(4 小时内要搭完整个平台 + 答题),但这段经历让我对云计算有了系统的认识。
总结
| 组件 | 作用 |
|---|---|
| Keystone | 身份认证,所有服务的入口 |
| Glance | 镜像服务,管理虚拟机镜像 |
| Nova | 计算服务,管理虚拟机生命周期 |
| Neutron | 网络服务,SDN 网络管理 |
| Cinder | 块存储,给虚拟机挂硬盘 |
| Swift | 对象存储,类似 AWS S3 |
| Dashboard | Web 管理界面 |
| Placement | 资源调度(Train 版新增) |
OpenStack 私有云搭建看起来步骤多,但理清逻辑后就是:配环境 → 装脚本 → 按顺序跑。掌握这套流程,不管比赛还是实际工作都能用上。

