企业网络管理综合实训:CentOS7 纯终端完整部署 OpenStack IaaS 云平台(Keystone/Neutron/Cinder/Swift 全组件 + Dashboard 实操)
一、实训前言(课程背景 + 整体架构规划)
1. 课程实训背景
本文为《企业网络管理》课程期末综合大实训完整实操记录,全程基于CentOS Linux 7 (Core) 纯字符 tty 终端环境,不依赖 GNOME/KDE 图形桌面,完全使用 Shell 命令行完成 OpenStack 全套 IaaS 组件部署,贴合企业机房无图形服务器运维真实场景。
实训采用双节点架构:Controller 控制节点 + Compute 计算节点,依次部署 Keystone 身份认证、Neutron 云网络、Cinder 块存储、Swift 对象存储四大核心服务,配套 Horizon Web 管理面板完成租户网络、子网、云主机类型可视化配置,同时记录部署过程中典型报错与解决方案。
2. 双节点 IP 与硬件规划
节点角色 管理网卡 ens33 业务隧道网卡 核心承载服务
Controller 控制节点 192.168.1.241/24,网关 192.168.1.254 ens37:20.0.0.10/24 Keystone、Neutron-server、Cinder-api、Swift 代理、Horizon 面板、数据库
Compute 计算节点 192.168.1.242/24 ens36:20.0.0.20/24 Neutron 代理、Cinder-volume 块存储、Swift 对象存储节点、KVM 虚拟机
DNS 统一:10.90.87.88
内网业务网段:20.0.0.0/24(存储 / 组件通信)
租户业务网段:10.10.1.0/24(虚拟机子网)
3. 实训核心学习目标
掌握 CentOS7 多网卡静态网络规划,区分管理网、业务存储网、租户业务网;
熟练使用 YUM 包管理器批量安装 OpenStack 组件,systemd 管理服务开机自启;
完整落地 OpenStack 四大核心组件:身份 Keystone、网络 Neutron、块存储 Cinder、对象存储 Swift;
掌握 Horizon 可视化面板操作:创建 VLAN 租户网络、DHCP 子网、云主机规格;
解决企业运维常见报错:command not found、目录不存在、命令弃用警告、网络服务重启故障。
二、前置基础:CentOS7 企业级多网卡静态 IP 配置
企业生产服务器严格分离多网卡流量,本次实训双节点均配置双静态网卡,修改/etc/sysconfig/network-scripts/ifcfg-xxx实现永久 IP。
2.1 Controller 节点网卡配置
管理网卡 ens33(192.168.1.241)
BOOTPROTO=static
DEFROUTE=yes
ONBOOT=yes
IPADDR=192.168.1.241
PREFIX=24
GATEWAY=192.168.1.
业务隧道网卡 ens37(20.0.0.10)
BOOTPROTO=static
ONBOOT=yes
IPADDR=20.0.0.10
PREFIX=24
HWADDR=00:0C:29:D8:88:AB
DEFROUTE=yes
2.2 Compute 节点网卡验证
执行ip add查看网卡生效状态:
- ens33:管理网段
192.168.1.242/24UP - ens36:存储业务网段
20.0.0.20/24UP 本地回环 lo 网卡正常加载 IPv4/IPv6 地址,网卡配置无冲突。
2.3 网络重载验证命令
# 重载网络服务
systemctl restart network
# 查看IP生效
ip addr
# 跨节点连通性测试
ping 192.168.1.241
ping 20.0.0.10
三、基础服务前置实操:vsftpd FTP 服务部署(YUM 服务管理示例)
企业内网常用 FTP 传输云平台镜像、部署脚本,本小节演示 CentOS7 软件包安装、配置、开机自启标准流程,是 Linux 系统运维基础考点。
# 1. yum一键安装vsftpd
yum install vsftpd -y
# 2. 编辑FTP配置文件
vi /etc/vsftpd/vsftpd.conf
# 3. 启动服务并设置开机自启
systemctl start vsftpd
systemctl enable vsftpd
执行enable后输出软链接创建日志,代表开机自启配置完成,事务执行提示完毕!说明安装无依赖报错。
四、OpenStack 核心组件分步部署实操
4.1 Keystone 身份认证服务(控制节点)
Keystone 是 OpenStack 统一身份门户,管理租户、用户、服务、API 端点。
- 配置环境变量脚本
# 加载管理员环境变量 source /etc/keystone/admin-openrc.sh # 加载普通租户环境变量 source /etc/xiandian/openrc.sh # 修改Neutron ML2网络配置 openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks provider # 重载网络服务 systemctl restart network(controller 节点 keystone 操作):
部署排错点:Compute 节点无 keystone 目录
Compute 节点执行cd keystone提示没有那个文件或目录,原因:Keystone 仅部署在控制节点,计算节点无需完整 keystone 服务目录,仅需安装客户端依赖包即可,无需进入该目录操作。
对应报错截图:
4.2 Neutron 云网络组件(双节点部署,实训核心)
Neutron 负责云平台二层隔离网络、三层路由、DHCP 地址分配,本次采用 ML2 LinuxBridge 驱动,支持 Flat 外网、VLAN 租户内网两种网络类型。
4.2.1 软件包安装与数据库初始化
双节点 yum 安装 neutron 全套依赖:openstack-neutron、python-neutron、zeromq、ipset、net-tools 等网络工具。
对应截图(compute 节点 neutron 依赖包列表):
控制节点执行数据库版本迁移 alembic 脚本,自动生成完整网络数据表,日志输出OK代表迁移成功,自动创建所有 neutron 服务 systemd 自启软链接:
neutron-server(控制主服务)
neutron-linuxbridge-agent(二层网桥)
neutron-dhcp-agent(虚拟机地址分配)
neutron-metadata-agent(元数据服务)
neutron-l3-agent(三层网关路由)
对应截图(neutron 数据库迁移 + 服务自启):
4.2.2 核心配置命令
# 配置ML2驱动支持VLAN租户网络
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vlan
# 配置三层网关外网网桥br-ex
openstack-config --set /etc/neutron/l3_agent.ini DEFAULT external_network_bridge br-ex
# 重启服务加载配置
systemctl restart neutron-server
systemctl restart neutron-l3-agent
对应截图(neutron ml2 与 l3 agent 配置重启):
4.2.3 命令行创建 Flat 外网与 VLAN 租户网络
# 创建Flat类型外部网络ext-net(外网出口)
neutron net-create ext-net --router:external True --provider:network_type flat --provider:physical_network provider
# 创建VLAN隔离租户内网demo-net(VLAN ID 139)
neutron net-create demo-net --tenant-id `openstack project list |grep -w admin |awk '{print $2}'` --provider:network_type vlan
执行后返回网络完整字段,status:ACTIVE代表网络创建成功;控制台提示neutron CLI is deprecated为版本弃用警告,新版本推荐openstack network create替代。
对应截图(flat 外网 + vlan 租户网络创建返回结果):
4.2.4 Horizon 面板可视化创建租户子网
通过 Web 界面为 demo-net 创建子网aaa,完整参数配置:
基础子网页:
子网名称:aaa
网络地址:10.10.1.0/24
IP 版本:IPv4
网关 IP:10.10.1.1
对应截图(创建子网基础页):
子网详情高级配置:
激活 DHCP:勾选,地址池范围10.10.1.2,10.10.1.100
DNS 服务器:10.97.87.88
主机路由:192.168.1.0/24,10.10.1.1(打通管理网段与租户虚拟机网段互通)
对应截图(子网高级 DHCP 配置):
配置完成后子网自动关联 VLAN 租户网络,虚拟机可自动获取 IP、解析域名、访问管理服务器。
4.3 Cinder 块存储服务(控制节点 + 计算节点)
Cinder 为云主机提供持久化块磁盘,类似云硬盘,分为控制节点 api 服务、计算节点 volume 存储服务。
4.3.1 计算节点安装 Cinder 存储包
yum install openstack-cinder -y安装自动完成 LVM 物理卷、卷组创建:
Physical volume "/dev/sdb1" successfully created. Volume group "cinder-volumes" successfully created自动创建openstack-cinder-volume开机自启软链接,计算节点提供后端磁盘存储。 对应截图(compute cinder 安装 + lvm 创建):
4.3.2 控制节点注册 Cinder 服务 API 端点
执行命令注册 cinderv3 块存储服务,生成 admin/internal/public 三套访问 URL,端口 8776:
plaintext
http://controller:8776/v3/%(tenant_id)s
创建openstack-cinder-api、openstack-cinder-scheduler服务自启软链接,控制节点对外提供存储 API 接口。
对应截图(cinder 服务注册端点):
4.4 Swift 对象存储服务(双节点分布式存储)
Swift 负责海量文件 / 镜像对象存储,无中心架构,分为 proxy 代理、account/container/object 三类存储节点。
计算节点构建 Swift 环文件(account/container/object)
执行 builder 命令生成存储分区环,分配设备20.0.0.10:6000~6002,完成分区重平衡,日志输出Reassigned 100% partitions;
对应截图(swift 环构建分区平衡):
同步上传环文件至系统目录,自动创建全套 swift 服务开机自启软链接:
swift-proxy、swift-account、swift-container、swift-object、各类审计 / 复制 / 清理服务;
配套 rsync 同步服务开机自启,保证多节点对象数据同步。
对应截图(swift 服务创建自启软链接):
4.5 Horizon 云管理面板 Web 实操
浏览器访问 OpenStack Dashboard,完成可视化资源配置:
创建云主机类型(规格 mini)
参数:VCPU=1,内存 512MB,根磁盘 1GB,Swap 分区 1024MB,RX/TX 因子 1.0,标记公有类型;
页面提示成功: 云主机类型 "mini" 创建完毕,后续创建虚拟机可直接选用该资源规格。
对应截图(horizon 创建云主机类型):
五、实训典型故障排错汇总(作业高频报错)
故障 1:执行卸载脚本提示 -bash: iaas-uninstall-all.sh: command not found
现象
登录纯终端 root 用户,直接输入脚本名称执行,系统无法识别命令。
对应报错截图:
根因
Linux Shell 不会自动检索当前目录,仅读取$PATH环境变量内路径;
脚本缺少执行权限、脚本文件不存在也会触发该报错。
解决方案
# 1. 切换到脚本所在目录,使用相对路径./执行
cd /root
./iaas-uninstall-all.sh
# 2. 检查脚本是否存在
ls -l iaas-uninstall-all.sh
# 3. 赋予执行权限(无x权限时)
chmod +x iaas-uninstall-all.sh
# 备选方案:临时将当前目录加入环境变量
export PATH=$PATH:.
iaas-uninstall-all.sh
故障 2:Compute 节点执行cd keystone提示没有那个文件或目录
根因
Keystone 身份服务仅部署在 Controller 控制节点,计算节点仅安装客户端依赖包,无完整/etc/keystone配置目录,无需进入该目录操作。
解决方案
计算节点跳过 keystone 目录操作,仅执行 Neutron/Cinder/Swift 存储网络相关配置命令。
故障 3:neutron CLI 弃用警告 neutron CLI is deprecated
根因
OpenStack 新版本逐步废弃独立 neutron 命令行,统一整合至openstack主命令集。
优化写法(替代原 neutron net-create)
openstack network create demo-net --provider-network-type vlan
六、实训完整总结与企业生产拓展
6.1 课程实训核心收获
熟练掌握 CentOS7 纯终端无图形运维模式,理解企业多网卡网络分层规划(管理网 / 存储业务网 / 租户业务网);
吃透 YUM 软件包管理、systemd 服务生命周期管理,可独立部署 FTP、OpenStack 全套云服务;
完整掌握 OpenStack IaaS 四层核心组件原理:Keystone 身份认证、Neutron 虚拟网络、Cinder 块存储、Swift 对象存储;
掌握命令行 + Web 面板双模式运维,能创建 VLAN 隔离租户网络、DHCP 自动分配子网、自定义云主机硬件规格;
建立标准化 Linux 排错思维,可独立解决命令找不到、目录缺失、软件版本弃用、网络不通等常见运维故障。
6.2 企业生产环境优化拓展
安全加固:关闭 root 远程 SSH 登录、防火墙限制云平台专用端口、vsftpd 启用虚拟用户、Keystone 启用 Fernet 令牌加密;
高可用架构:Neutron 多 L3 Agent 冗余、Cinder 多存储后端、Swift 多副本高可用、Controller 双机热备;
网络性能优化:网卡 Bond 链路聚合、VXLAN 隧道替代 VLAN 突破 4096 网段限制、调整 DHCP 地址池优化虚拟机上线速度;
自动化运维:将整套 OpenStack 部署、卸载流程编写 Shell 一键脚本,批量自动化部署多节点集群;
监控运维:部署 Zabbix/Prometheus 监控云节点 CPU、磁盘、网络、OpenStack 服务状态,故障自动告警。
七、文末互动
本文完整记录《企业网络管理》课程 CentOS7 纯终端 OpenStack 全组件实训所有操作,文中全部命令均可直接复制复刻,配套截图覆盖部署全流程。
如果你在搭建云平台、配置 Linux 网卡、处理 OpenStack 报错时遇到问题,可以评论区留言,我会逐一解答;需要完整一键部署 Shell 脚本、课程实训报告模板也可以私信我。
