摘要:本文详细介绍如何在 CentOS 7 环境下,使用 Packstack 工具一键部署 OpenStack Train 版本(All-in-One 模式)。适合云计算初学者、运维工程师及毕业设计参考。


一、 前言

OpenStack 是目前最为流行的开源云操作系统框架。对于初学者来说,组件的手动安装(Manual Installation)极其复杂且容易出错。

本文采用 RDO (RPM Distribution of OpenStack) 提供的 Packstack 工具进行“全合一”(All-in-One)部署。这意味着所有的 OpenStack 组件(Nova, Neutron, Keystone, Glance, Horizon 等)都将安装在同一台虚拟机或物理机上,非常适合学习和测试。

二、 环境准备

2.1 硬件要求

OpenStack 组件较多,非常吃内存,请确保您的虚拟机或物理机满足以下最低配置:

  • CPU: 双核及以上 (支持虚拟化 VT-x/AMD-v)

  • 内存: 建议 8GB 以上 (4GB 极其容易导致服务启动失败)

  • 硬盘: 50GB 以上

  • 网卡: 1个 (需配置静态 IP)

2.2 系统版本

  • OS: CentOS Linux release 7.9.2009 (Core)

  • 网络模式: NAT 或 桥接 (建议 NAT 模式防止 IP 冲突)


三、 系统初始化配置(关键步骤)

在安装 OpenStack 之前,必须对系统环境进行严格的配置,否则安装过程中会报各种奇怪的错误。

3.1 配置静态 IP

编辑网卡配置文件(假设网卡名为 ens33):

Bash

vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改及添加以下内容(根据您的实际网段填写):

Properties

BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.100.10  # 您的IP地址
NETMASK=255.255.255.0
GATEWAY=192.168.100.2  # 您的网关
DNS1=8.8.8.8
DNS2=114.114.114.114

重启网络服务:

Bash

systemctl restart network
ping www.baidu.com  # 确保能通外网

3.2 设置主机名

OpenStack 强烈依赖主机名解析,最好设置为 FQDN 格式:

Bash

hostnamectl set-hostname controller.example.com

配置 /etc/hosts,添加解析记录:

Bash

echo "192.168.100.10 controller.example.com controller" >> /etc/hosts

3.3 关闭防火墙和 SELinux

为了避免权限和网络阻断问题,建议在测试环境中关闭它们。

Bash

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭 NetworkManager (Packstack 建议使用 network 服务管理网络)
systemctl stop NetworkManager
systemctl disable NetworkManager

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

3.4 升级系统内核及软件包

Bash

yum update -y
reboot # 更新完建议重启一次

四、 安装 OpenStack (Packstack 方式)

4.1 安装 OpenStack Train 源

Bash

yum install -y centos-release-openstack-train

4.2 安装 Packstack 工具

Bash

yum install -y openstack-packstack

4.3 运行一键安装

这是最关键的一步。使用 --allinone 参数表示在单机上安装所有组件。

Bash

packstack --allinone

注意:

这个过程根据网速和机器性能,大约需要 15 ~ 45 分钟。

如果安装过程中出现 Error,请查看报错信息。如果是网络超时,重新运行上述命令即可,Packstack 具有幂等性(支持断点续传)。

4.4 等待安装完成

当您看到如下字符时,恭喜您,安装成功!

Plaintext

 **** Installation completed successfully ******

 Additional information:
 * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be a problem for some OpenStack components.
 * File /root/keystonerc_admin has been created on OpenStack client host 192.168.100.10. To use the command line tools you need to source the file.
 * To access the OpenStack Dashboard browse to http://192.168.100.10/dashboard .
 Please, find your login credentials stored in the keystonerc_admin file or in the log files of this installation.

五、 验证与登录

5.1 登录 Dashboard (Horizon)

  1. 打开浏览器,访问:http://192.168.100.10/dashboard

  2. 用户名: admin

  3. 密码: 查看服务器上的密码文件。

查看密码命令:

Bash

cat /root/keystonerc_admin | grep OS_PASSWORD

5.2 创建外部网络 (可选但推荐)

登录后,默认通常没有配置连接外网的网络。

  1. 在左侧菜单选择 管理员 (Admin) -> 网络 (Network) -> 网络 (Networks)

  2. 点击 创建网络 (Create Network)

  3. 名称: public_net,项目选择 admin,类型选择 FlatExternal

  4. 物理网络: extnet (这是 Packstack 默认的物理网桥名)。

  5. 子网: 设置为与您物理机同一网段(例如 192.168.100.0/24),但要设置好 IP地址池,避免与物理机 IP 冲突。


六、 常见问题排坑 (Troubleshooting)

Q1: Facter: error while resolving custom facts 或 编码错误

原因: 系统语言环境设置问题。

解决:

Bash

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Q2: Horizon 登录报 "An error occurred authenticating"

原因: 通常是 Memcached 服务未启动或时间不同步。

解决:

Bash

systemctl restart memcached

同时确保虚拟机时间与现实时间一致。

Q3: 虚拟机实例无法连接外网

原因: 网桥配置问题。

解决: 检查 /etc/sysconfig/network-scripts/ifcfg-br-ex 配置文件,确保物理网卡(如 ens33)已经挂载到了 OVS 网桥上。


七、 结语

通过 Packstack,我们快速搭建了一个单节点的 OpenStack 环境。虽然这不适合生产环境(生产环境建议使用 Kolla-Ansible 部署高可用集群),但对于学习 Nova 计算、Neutron 网络、Cinder 存储等核心概念已经足够了。

如果您在安装过程中遇到问题,欢迎在评论区留言交流!

创作不易,如果觉得有用,请点赞、收藏支持一下!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐