在 CentOS Stream 8 上使用 Packstack 部署 OpenStack Victoria
文章目录
- [在 CentOS Stream 8 上使用 Packstack 部署 OpenStack Victoria](#在 CentOS Stream 8 上使用 Packstack 部署 OpenStack Victoria)
本文将详细介绍如何在 CentOS Stream 8 操作系统上,通过 Packstack 工具快速部署 OpenStack Victoria 版本。Packstack 是一个简化 OpenStack 部署的命令行工具,基于 Puppet 模块实现自动化安装,非常适合初学者快速搭建测试环境。
环境准备
硬件要求
- 处理器:至少 2 核 CPU(推荐 4 核及以上)
- 内存:最低 8GB RAM(生产环境建议 16GB 以上)
- 磁盘:至少 40GB 可用空间(推荐 SSD 以获得更好性能)
- 网络:至少一块网络接口卡,能够访问互联网
操作系统准备
首先确保系统是最新的 CentOS Stream 8:
bash
# 更新系统到最新版本
sudo dnf update -y
# 安装必要的基础工具
sudo dnf install -y net-tools bind-utils vim wget curl
禁用不必要的服务
OpenStack 对系统环境有特定要求,需要禁用 SELinux 和防火墙:
bash
# 临时禁用 SELinux
sudo setenforce 0
# 永久禁用 SELinux(需要重启生效)
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
# 停止并禁用防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld
# 确认防火墙状态
sudo systemctl status firewalld
配置网络和主机名
bash
# 设置主机名(根据实际情况修改)
sudo hostnamectl set-hostname openstack-victoria
# 配置 hosts 文件
echo "$(hostname -I | awk '{print $1}') $(hostname)" | sudo tee -a /etc/hosts
# 验证网络配置
ip addr show
ping -c 3 www.baidu.com
配置内核参数
为了优化 OpenStack 运行环境,需要调整一些内核参数:
bash
# 添加内核参数配置
sudo tee /etc/sysctl.d/openstack.conf << EOF
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
EOF
# 加载内核参数
sudo sysctl -p /etc/sysctl.d/openstack.conf
安装 Packstack 工具
启用必要的软件仓库
OpenStack Victoria 需要特定的软件仓库支持:
bash
# 启用 PowerTools 仓库(CentOS Stream 8 中部分包位于此仓库)
sudo dnf config-manager --set-enabled powertools
# 安装 OpenStack Victoria 仓库
sudo dnf install -y centos-release-openstack-victoria
# 安装后更新仓库缓存
sudo dnf update -y
安装 Packstack 包
bash
# 安装 OpenStack Packstack 工具
sudo dnf install -y openstack-packstack
# 验证安装版本
packstack --version
使用 Packstack 部署 OpenStack
单节点全栈部署
对于测试环境,推荐使用单节点全栈部署(All-in-One),所有服务都安装在同一台服务器上:
bash
# 开始单节点部署
sudo packstack --allinone
注意:部署过程需要一段时间(通常 30-60 分钟,取决于网络速度),请耐心等待。期间会自动下载所需包并配置各个服务。
自定义部署(可选)
如果需要自定义部署参数,可以生成应答文件进行配置:
bash
# 生成默认应答文件
packstack --gen-answer-file=answers.txt
# 编辑应答文件,根据需求修改配置
vim answers.txt
# 使用自定义应答文件部署
sudo packstack --answer-file=answers.txt
常见的自定义配置包括:
- 网络设置(修改
CONFIG_NEUTRON_*相关参数) - 密码设置(修改
CONFIG_*_PASSWORD相关参数) - 服务启用 / 禁用(修改
CONFIG_*_ENABLED相关参数)
部署完成后的配置
获取管理员凭证
部署成功后,会在 root 用户目录下生成凭证文件:
bash
# 切换到 root 用户
sudo su -
# 加载管理员凭证
source keystonerc_admin
# 验证凭证是否生效
openstack service list
如果命令返回所有服务列表,说明部署成功。
访问 Horizon 仪表盘
OpenStack 提供了 Web 管理界面 Horizon,可以通过浏览器访问:
- 打开浏览器,输入地址:
https://<服务器IP地址>/dashboard - 登录页面中,用户名输入
admin - 密码可以在凭证文件中查看,执行
cat keystonerc_admin即可看到
注意:由于使用自签名证书,浏览器会提示安全警告,选择 "继续访问" 即可。
验证 OpenStack 服务状态
bash
# 检查 OpenStack 服务状态
openstack-status
# 检查系统服务状态
systemctl list-units "openstack-*" "neutron-*" "nova-*" | grep active
常见问题及解决方法
部署过程中失败
-
查看详细日志定位问题:
bashless /var/log/packstack/packstack-installer.log -
清理之前的安装尝试:
bashsudo packstack --uninstall -
解决问题后重新部署
服务启动失败
-
查看具体服务的日志文件:
bash# 例如查看 Nova 计算服务日志 less /var/log/nova/nova-compute.log -
常见原因及解决:
- 数据库连接问题:检查数据库服务是否运行
- 消息队列问题:确保 rabbitmq 服务正常
- 权限问题:检查相关目录权限是否正确
网络访问问题
-
确保实例所在网络与外部网络正确连接
-
检查安全组规则,确保必要的端口开放:
bashopenstack security group rule list default -
如需要从外部访问实例,可能需要配置浮动 IP
后续操作建议
- 创建测试实例 :
- 通过 Horizon 界面或命令行创建第一个虚拟机实例
- 确保实例能够正常启动并分配网络
- 配置网络 :
- 创建私有网络和子网
- 配置路由器连接外部网络
- 设置浮动 IP 池
- 上传自定义镜像 :
- 通过 Glance 服务上传常用操作系统镜像
- 支持多种格式(qcow2、raw 等)
- 创建卷存储 :
- 使用 Cinder 服务创建块存储卷
- 将卷挂载到实例使用
总结
通过 Packstack 工具,我们可以快速在 CentOS Stream 8 上部署 OpenStack Victoria 环境,整个过程自动化程度高,大大降低了部署难度。这种方式非常适合搭建测试环境或学习 OpenStack 各组件的工作原理。
对于生产环境部署,还需要考虑高可用性设计、性能优化、安全加固等更多因素,建议参考 OpenStack 官方文档进行深入配置。