OpenStack部署实战:从零搭建最小可用私有云环境

如果你正准备第一次动手部署 OpenStack,最直接的路径是:用 CentOS 7 虚拟机 + Packstack 工具跑通一个最小化环境。
本文按这个思路,从系统准备到登录 Dashboard 完整走一遍,重点给出可复制的命令和常见报错处理。

环境准备:一台能联网的 CentOS 7 虚拟机

OpenStack 对资源有最低要求,实验环境建议至少 4 核 CPU、8GB 内存、60GB 磁盘,并分配一个可访问外网的网卡。
如果内存不足 8GB,Packstack 安装过程中容易因服务启动超时而失败。

系统层面需要先做三件事:

  1. 关闭 SELinux 和防火墙,避免安装过程中端口被拦截。
  2. 配置主机名和 hosts 解析,让各服务能通过名称互通。
  3. 启用 EPEL 源并更新系统。

对应命令如下:

# 关闭 SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

# 关闭 firewalld
systemctl stop firewalld
systemctl disable firewalld

# 设置主机名(示例:openstack.local)
hostnamectl set-hostname openstack.local
echo '192.168.1.100 openstack.local' >> /etc/hosts

# 安装 EPEL 并更新
yum install -y epel-release
yum update -y

执行完成后用 hostname 和 ping openstack.local 确认主机名与解析正常。

安装 Packstack 并生成应答文件

Packstack 是 OpenStack 官方提供的快速部署工具,适合单节点实验环境。
安装和生成配置文件的命令:

yum install -y openstack-packstack
packstack --gen-answer-file=answer.txt

生成的 answer.txt 是安装参数文件,重点修改以下几项:

CONFIG_DEFAULT_PASSWORD=YourStrongPassword
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan
CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan
CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=extnet:br-ex
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0
CONFIG_PROVISION_DEMO=n

将 CONFIG_DEFAULT_PASSWORD 换成强密码,
把 eth0 替换成你实际的网卡名(用 ip addr 查看)。CONFIG_PROVISION_DEMO=n 表示不创建演示用户,
减少干扰。

修改完成后执行安装:

packstack --answer-file=answer.txt

安装过程约 20–40 分钟,取决于网络和机器性能。
终端会输出每一步的进度,如果中途报错,先看 /var/log/packstack/ 下对应的日志文件。

验证服务与登录 Dashboard

安装结束后,检查关键服务是否处于运行状态:

systemctl status openstack-nova-api
systemctl status openstack-glance-api
systemctl status neutron-server
systemctl status openstack-keystone

如果某个服务显示 failed,用 journalctl -u 服务名 -xe 查看详细报错。
常见原因包括数据库连接失败、消息队列未启动或配置文件路径错误。

通过命令行验证身份服务:

source /root/keystonerc_admin
openstack user list
openstack service list

能正常列出用户和服务,说明 Keystone 认证可用。

浏览器访问 Dashboard 的地址通常是 http://<你的IP>/dashboard,用户名 admin,密码为应答文件中设置的值。
登录后能看到“项目”和“管理员”菜单,即表示基础环境部署成功。

容易踩坑的地方

网络配置错误是新手遇到最多的失败原因。CONFIG_NEUTRON_OVS_BRIDGE_IFACES 里的网卡名必须和实际一致,写错会导致 br-ex 网桥无法创建,实例拿不到 IP。
修改前先用 ip addr 确认。

内存不足会让 Nova 或 Neutron 服务反复重启。
实验环境至少给 8GB,如果只有 4GB,可以在应答文件中关闭不需要的组件(如 Cinder、Swift),但功能会受限。

DNS 解析不稳定会导致 yum 安装中途失败。
建议提前配置好可用的 DNS,或使用本地镜像源。
安装过程中不要手动中断,否则残留的配置需要手动清理才能重装。

重复安装前需要清理旧配置,否则会因端口占用或数据库已有数据而报错。
可以重装系统或手动卸载相关包,不熟悉的情况下重新建虚拟机更省时间。

部署完成后建议做的检查

在正式使用前,用下面几条命令确认基础功能可用:

openstack network list
openstack image list
openstack flavor list

如果列表为空,说明对应服务尚未初始化数据,可以上传一个测试镜像验证 Glance 是否正常。
上传命令参考:

openstack image create --disk-format qcow2 --container-format bare --file cirros.qcow2 cirros

镜像状态变为 active 后,就可以尝试创建实例。
第一次创建实例建议用最小的 flavor,观察是否能正常分配到 IP 并进入运行状态。

常见问题

Packstack 安装到一半报错退出怎么办?
先查看 /var/log/packstack/ 目录下最新的日志文件,定位具体失败的服务。常见原因是某个包下载失败或端口被占用。修复后重新运行 packstack --answer-file=answer.txt,工具会尝试继续未完成的步骤。

Dashboard 打不开但服务显示正常?
检查 HTTP 服务是否运行:systemctl status httpd。如果 httpd 正常,再看防火墙是否真的关闭,以及浏览器访问的 IP 是否正确。

实例能创建但无法访问外网?
通常是 br-ex 网桥或安全组规则的问题。用 ovs-vsctl show 查看网桥状态,确认物理网卡已加入 br-ex。安全组需要放行 ICMP 和 SSH 规则。

能否用于生产环境?
本文演示的是单节点实验部署,适合学习和功能验证。生产环境需要考虑高可用、多节点、存储后端和监控告警,建议参考官方架构文档做进一步规划。

分享到:
上一篇
Podman容器实战:从安装到部署Nginx的完整教程
下一篇
华为云ECS运维教程:从登录到安全加固的完整操作
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意