适用版本:OpenStack Q版本(chinaskills_cloud_iaas.iso) 适用场景:双节点实验环境 / 省赛云计算平台搭建 操作系统:CentOS 7(CentOS-7-x86_64-DVD-1804.iso)
一、硬件与网络环境准备
1.1 所需硬件清单
| 设备 | 数量 | 备注 |
|---|---|---|
| 三层交换机 | 1台 | 支持 VLAN、Trunk |
| 服务器(Controller) | 1台 | CPU/内存/硬盘越大越好 |
| 服务器(Compute) | 1台 | CPU/内存/硬盘越大越好 |
| USB启动盘 | 1个 | 用于系统安装 |
1.2 网线连接规划
| 连接端 | 交换机端口 | 模式 |
|---|---|---|
| Controller 网卡一 / Compute 网卡一 | 1~2 口 | Access(管理网络) |
| Controller 网卡二 / Compute 网卡二 | 9~10 口 | Trunk(业务网络) |
1.3 IP 地址规划
| 节点 | 主机名 | 管理网IP(网卡一) | 网关 | DNS |
|---|---|---|---|---|
| 控制节点 | controller | 10.2.12.10/23 | 10.2.13.254 | 10.8.12.106 |
| 计算节点 | compute | 10.2.12.11/23 | 10.2.13.254 | 10.8.12.106 |
1.4 交换机 VLAN 配置
<H3C>system-view
# 创建 VLAN 100 并配置网关IP
[H3C]vlan 100
[H3C-vlan100]int vlan 100
[H3C-Vlan-interface100]ip address 10.2.12.9 255.255.254.0
[H3C-Vlan-interface100]qu
# 配置 1~2 口为 Access 模式,划入 VLAN 100(管理网络)
[H3C]int range GigabitEthernet 1/0/1 to GigabitEthernet 1/0/2
[H3C-if-range]port link-type access
[H3C-if-range]port access vlan 100
[H3C-if-range]qu
# 配置 9~10 口为 Trunk 模式,放行所有 VLAN(业务网络)
[H3C]int range GigabitEthernet 1/0/9 to GigabitEthernet 1/0/10
[H3C-if-range]port link-type trunk
[H3C-if-range]port trunk permit vlan all
# 保存配置
[H3C]sa sa fo
二、操作系统安装
2.1 制作系统启动盘
使用 MultiBootUSB 或类似工具,将 CentOS-7-x86_64-DVD-1804.iso 写入U盘制作启动盘。
2.2 系统安装分区建议
两台服务器均按此配置安装系统
| 分区 | 大小 | 文件系统 |
|---|---|---|
| swap | 2 GB | swap |
| /boot | 1 GB | ext4 |
| / | 剩余全部空间 | ext4 |
2.3 配置网卡(静态IP)
Controller 节点:
vi /etc/sysconfig/network-scripts/ifcfg-enp61s0f0
TYPE=Ethernet
BOOTPROTO=static # 改为 static(原为 dhcp)
ONBOOT=yes # 改为 yes(原为 no)
IPADDR=10.2.12.10
NETMASK=255.255.254.0
GATEWAY=10.2.13.254
DNS1=10.8.12.106
Compute 节点:(仅 IPADDR 不同)
IPADDR=10.2.12.11
重启网络服务:
systemctl restart network
三、OpenStack 平台部署
3.1 基础环境配置(两节点均需执行)
步骤一:修改主机名
# Controller 节点
hostnamectl set-hostname controller && logout
# Compute 节点
hostnamectl set-hostname compute && logout
步骤二:配置主机名解析
# 在 Controller 节点执行
vi /etc/hosts
在文件末尾追加以下内容:
10.2.12.10 controller
10.2.12.11 compute
步骤三:关闭防火墙和 SELinux
# 关闭防火墙(两节点均需执行)
systemctl stop firewalld && systemctl disable firewalld
# 修改 SELinux 为宽容模式(两节点均需执行)
vi /etc/selinux/config
# 将 SELINUX=enforcing 改为 SELINUX=permissive
3.2 配置 Yum 源
Controller 节点 — 挂载ISO并配置本地源
# 创建目录
mkdir /opt/centos /opt/iaas
# 挂载 CentOS 镜像
mount -o loop CentOS-7-x86_64-DVD-1804.iso /mnt/
cp -rvf /mnt/* /opt/centos/
umount /mnt
# 挂载 iaas 镜像
mount -o loop chinaskills_cloud_iaas.iso /mnt/
cp -rvf /mnt/* /opt/iaas/
umount /mnt
# 备份并创建 yum 源配置
mv /etc/yum.repos.d/* /media/
vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1
安装并启用 vsftpd(为 Compute 节点提供 FTP 源):
yum -y install vsftpd
echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd && systemctl enable vsftpd
Compute 节点 — 配置 FTP Yum 源
mv /etc/yum.repos.d/* /media/
vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=ftp://controller/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://controller/iaas/iaas-repo
gpgcheck=0
enabled=1
3.3 配置 OpenStack 环境变量
编辑配置文件:
vi /etc/xiandian/openrc.sh
关键参数说明(Controller 节点):
# ===== 节点信息 =====
HOST_IP=10.2.12.10 # Controller IP
HOST_PASS=000000 # Controller root 密码
HOST_NAME=controller # Controller 主机名
HOST_IP_NODE=10.2.12.11 # Compute IP
HOST_PASS_NODE=000000 # Compute root 密码
HOST_NAME_NODE=compute # Compute 主机名
# ===== 网络配置 =====
network_segment_IP=10.2.12.0/23
INTERFACE_IP=10.2.12.10 # 本节点 IP(Compute 改为 10.2.12.11)
INTERFACE_NAME=enp61s0f1 # 业务网卡名(网卡二)
Physical_NAME=provider
minvlan=1
maxvlan=300
# ===== 服务密码(统一设置) =====
RABBIT_USER=openstack
RABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000
KEYSTONE_DBPASS=000000
# (其余服务密码均设为 000000)
同步配置文件到 Compute 节点,并修改 INTERFACE_IP:
# 拷贝配置文件
scp /etc/xiandian/openrc.sh compute:/etc/xiandian/openrc.sh
# ⚠️ 登录 Compute 节点,将 INTERFACE_IP 改为 10.2.12.11
3.4 安装 OpenStack 各组件
⚠️ 必须严格按照以下顺序执行,不可跳步!
# Step 1:两节点均安装 iaas-xiandian 包
[controller]# yum install -y iaas-xiandian
[compute]# yum install -y iaas-xiandian
# Step 2:两节点均执行主机预配置脚本
[controller]# iaas-pre-host.sh
[compute]# iaas-pre-host.sh
# Step 3:Controller 节点依次执行
[controller]# iaas-install-mysql.sh
[controller]# iaas-install-keystone.sh
[controller]# iaas-install-glance.sh
[controller]# iaas-install-nova-controller.sh
# Step 4:Compute 节点执行
[compute]# iaas-install-nova-compute.sh
# Step 5:Controller 节点继续
[controller]# iaas-install-neutron-controller.sh
# Step 6:Compute 节点执行
[compute]# iaas-install-neutron-compute.sh
# Step 7:Controller 节点完成 Dashboard 安装
[controller]# iaas-install-dashboard.sh
安装完成后访问 Dashboard:
| 项目 | 内容 |
|---|---|
| 访问地址 | http://10.2.12.10/dashboard |
| 用户名 | admin |
| 密码 | 000000 |
四、OpenStack 平台基础使用
4.1 创建外部网络
登录 Dashboard → 管理员 → 网络 → 创建网络,参数如下:
| 配置项 | 值 |
|---|---|
| 网络名称 | ExtNet |
| 项目 | admin |
| 供应商网络类型 | VLAN |
| 物理网络 | provider |
| 段 ID | 100 |
| 管理员状态 | 启用 |
| 共享 | ✅ 是 |
| 外部网络 | ✅ 是 |
4.2 配置安全组
遵循 「三进三出」原则:
- 入方向:允许 ICMP、TCP、UDP 全部流量(或按需细化)
- 出方向:允许 ICMP、TCP、UDP 全部流量
4.3 创建云主机类型(Flavor)
| 配置项 | 说明 |
|---|---|
| 名称 | 自定义 |
| ID | 自动生成或自填 |
| VCPU 数量 | 根据需求设置 |
| 内存(MB) | 根据需求设置 |
| 根磁盘(GB) | 根据需求设置 |
4.4 上传镜像
- 镜像格式:QCOW2
- 路径:管理员 → 镜像 → 创建镜像
4.5 创建云主机
- 进入 项目 → 实例 → 创建实例
- 选择 镜像 作为启动源
- 选择已创建的 云主机类型
- 分配 网络(选择已创建的网络)
- 选择 安全组
- 点击 创建实例
五、常见问题排查
问题:创建云主机报错 “No valid host was found”
原因分析: 虚拟化类型默认为 KVM,在模拟/嵌套虚拟化环境中不支持,需改为 QEMU 软件模拟。
解决方法(在 Compute 节点执行):
# 修改 libvirt 虚拟化类型为 qemu
crudini --set /etc/nova/nova.conf libvirt virt_type qemu
# 设置开机自启并重启服务
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl restart libvirtd.service openstack-nova-compute.service
附录:关键技术要点速查
| 要点 | 说明 |
|---|---|
| 部署架构 | 双节点:Controller(控制节点)+ Compute(计算节点) |
| 网络模式 | 双网卡:管理网(Access)+ 业务网(Trunk) |
| VLAN ID | 外部网络使用 VLAN 100 |
| Yum 源共享 | Controller 通过 vsftpd 提供 FTP 源,Compute 远程挂载 |
| 组件安装 | 使用 iaas-xiandian 脚本自动化安装,顺序严格 |
| 默认密码 | 所有服务密码统一为 000000(生产环境务必修改!) |
| Dashboard | http://[controller-IP]/dashboard,admin / 000000 |
📌 注意事项
- 本手册中所有密码均为实验默认值
000000,生产环境必须使用强密码- 各组件安装脚本需严格按顺序执行,跳步可能导致依赖缺失
- Compute 节点的
openrc.sh中INTERFACE_IP必须改为对应节点 IP
文档整理自:CSDN博客原文 | 整理时间:2026-05-13
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END














暂无评论内容