基于 openEuler 24.03 LTS SP2 的 OpenStack Antelope 双节点全自动化部署脚本,一条命令完成 Controller + Compute 集群搭建。
┌─────────────────────┐ ┌─────────────────────┐
│ Controller 节点 │ │ Compute 节点 │
│ ┌───────────────┐ │ │ ┌───────────────┐ │
│ │ Keystone │ │ │ │ Nova Compute │ │
│ │ Glance │ │ │ │ Neutron Agent │ │
│ │ Placement │ │◄───►│ │ Cinder Volume │ │
│ │ Nova (ctrl) │ │ │ │ Swift Storage │ │
│ │ Neutron (srv) │ │ │ └───────────────┘ │
│ │ Cinder (srv) │ │ └─────────────────────┘
│ │ Swift (srv) │ │
│ │ Horizon │ │
│ └───────────────┘ │
└─────────────────────┘
| 组件 | Controller | Compute |
|---|---|---|
| Keystone (认证) | ✅ | - |
| Glance (镜像) | ✅ | - |
| Placement (资源调度) | ✅ | - |
| Nova (计算) | ✅ API/Scheduler | ✅ Compute |
| Neutron (网络) | ✅ Server | ✅ Agent |
| Cinder (块存储) | ✅ Server | ✅ Volume |
| Swift (对象存储) | ✅ Server | ✅ Storage |
| Horizon (Web UI) | ✅ | - |
- 操作系统: openEuler 24.03 LTS SP2
- CPU 架构: x86_64 / aarch64
- Controller 节点: ≥ 8GB 内存,≥ 50GB 磁盘 (/var 分区 ≥ 20GB)
- Compute 节点: ≥ 4GB 内存
- 网络: 至少 2 块网卡(管理网 + Provider 网)
- 权限: root 用户
# 1. 下载脚本
git clone https://github.com/LiangL-sys/openEuler-openstack-dual-node-deploy.git
cd openEuler-openstack-dual-node-deploy
# 2. 赋予执行权限
chmod +x deploy-openstack.sh
# 3. 以 root 运行
sudo ./deploy-openstack.sh脚本启动后进入交互式配置,支持三种部署模式:
| 模式 | 说明 |
|---|---|
| Controller | 只部署控制节点,后续需手动在 Compute 上运行 |
| Compute | 只部署计算节点,通过 SSH 连接到已有 Controller |
| All-in-One | Controller 上一键远程部署双节点(推荐) |
./deploy-openstack.sh [选项]| 参数 | 说明 |
|---|---|
--status |
查看当前部署进度 |
--force <stage> |
强制重跑指定阶段 |
--dry-run |
模拟运行,不实际执行 |
- 幂等部署: 支持断点续传,失败后重新运行自动跳过已完成阶段
- 状态跟踪:
.deploy_state文件记录所有进度和配置 - SSH 免密登录: All-in-One 模式下自动配置 Controller ↔ Compute 互信
- 静态 IP 配置: 自动将管理网卡 DHCP 转为静态 IP,防止重启后 IP 变动
- 自动检测: 自动检测网卡、空闲磁盘、系统架构
- 详细日志: 所有操作记录到
/var/log/openstack-deploy/ - 配置备份: 首次修改的原始配置文件备份到
~/openstack-deploy/backup/
部署完成后,通过以下方式访问 OpenStack:
# Controller 节点上加载管理员凭据
source ~/admin-openrc
# 查看服务状态
openstack service list
openstack compute service list
openstack network agent list
# 访问 Horizon Dashboard
# http://<controller_ip>/dashboard
# 用户名: admin
# 密码: 部署时设置的密码(默认 123456)# 查看部署日志
ls /var/log/openstack-deploy/
# 查看当前部署状态
./deploy-openstack.sh --status
# 重新部署某个阶段(如 neutron)
./deploy-openstack.sh --force neutron_ctrlMIT