CentOS-Stream-8-packstack安装OpenStack-Victoria
摘要:本文详细介绍了在 CentOS Stream 8 环境下使用 packstack 自动化部署 OpenStack Victoria 的完整流程。主要内容包括:1)前期资源与环境准备(虚拟机配置、网络拓扑规划);2)模板虚拟机准备(yum源配置、基础软件安装、系统清理);3)OpenStack 节点准备(克隆虚拟机、配置主机名、IP地址、NTP服务);4)packstack 安装与配置(生成应答文件、修改关键参数、关闭 NetworkManager);5)安装完成后的测试与优化(登录 Dashboard、开启 network 服务、配置命令补全)。通过分步操作指南和详细命令示例,帮助读者快速搭建可用的 OpenStack Victoria 环境。
前期准备
1、资源清单
- CentOS-Stream-8 (minimal安装) - CentOS-Stream-8-20240603.0-x86_64-dvd1.iso
- vmware workstation17.5
- OpenStack-Victoria
2、虚拟机硬件配置
- controller: 4CPU 8G内存 1张网卡:NAT 100G系统盘
- compute: 4CPU 8G内存 1张网卡:NAT 100G系统盘
- 按照个人情况配置内存
3、网络拓扑
vmware网络设置:
- NAT网络, 开启DHCP, 192.168.108.0/24, 网关192.168.108.2, DNS 192.168.108.2
说明:
- Windows环境vmware的NAT网络网关为192.168.108.2
- Linux环境vmware的NAT网络网关为192.168.108.1
/etc/hosts:
192.168.108.10 controller
192.168.108.11 compute
步骤一:准备模板虚拟机
基于 CentOS-Stream-8 模板制作的模板,克隆出一个虚拟机(openstack_template),作为 openstack模板虚拟机。
配置yum源


完整克隆,克隆好后,开机配置
配置yum源
bash
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# cat <<EOF > /etc/yum.repos.d/openstack.repo
[centos-openstack-victoria]
name=CentOS 8 - OpenStack victoria
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/cloud/x86_64/openstack-victoria/
gpgcheck=0
enabled=1
[highavailability]
name=CentOS Stream 8 - HighAvailability
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/HighAvailability/x86_64/os/
gpgcheck=0
enabled=1
[nfV]
name=CentOS Stream 8 - NFV
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/NFV/x86_64/os/
gpgcheck=0
enabled=1
[rt]
name=CentOS Stream 8 - RT
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/RT/x86_64/os/
gpgcheck=0
enabled=1
[resilientstorage]
name=CentOS Stream 8 - ResilientStorage
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/ResilientStorage/x86_64/os/
gpgcheck=0
enabled=1
[extras-common]
name=CentOS Stream 8 - Extras packages
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/extras/x86_64/extras-common/
gpgcheck=0
enabled=1
[extras]
name=CentOS Stream $releasever - Extras
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/extras/x86_64/os/
gpgcheck=0
enabled=1
[centos-ceph-pacific]
name=CentOS - Ceph Pacific
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/storage/x86_64/ceph-pacific/
gpgcheck=0
enabled=1
[centos-rabbitmq-38]
name=CentOS-8 - RabbitMQ 38
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/messaging/x86_64/rabbitmq-38/
gpgcheck=0
enabled=1
[centos-nfv-openvswitch]
name=CentOS Stream 8 - NFV Openvswitch
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/nfv/x86_64/openvswitch-2/
gpgcheck=0
enabled=1
[baseos]
name=CentOS Stream 8 - BaseOS
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/BaseOS/x86_64/os/
gpgcheck=0
enabled=1
[appstream]
name=CentOS Stream 8 - AppStream
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/AppStream/x86_64/os/
gpgcheck=0
enabled=1
[powertools]
name=CentOS Stream 8 - PowerTools
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/PowerTools/x86_64/os/
gpgcheck=0
enabled=1
EOF
bash
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
安装方便操作环境包及基础软件包
bash
[root@localhost ~]# yum install -y bash-completion vim open-vm-tools net-tools chrony.x86_64
[root@localhost ~]# source /usr/share/bash-completion/bash_completion
设置/etc/hosts
bash
[root@localhost ~]# echo '192.168.108.10 controller' >> /etc/hosts
[root@localhost ~]# echo '192.168.108.11 compute' >> /etc/hosts
关闭SELinux
bash
[root@localhost ~]# sed -i '/^SELINUX=/CSELINUX=disabled/' /etc/selinux/config
编辑网卡信息
bash
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-ens160
配置内容:
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=ens160
DEVICE=ens160
ONBOOT=yes
清除密钥信息
bash
[root@localhost ~]# cd /etc/ssh/
[root@localhost ssh]# rm -rf ssh_host_*
清除Machine ID
bash
[root@localhost ~]# cat /dev/null > /etc/machine-id
[root@localhost ~]# cat /etc/machine-id
关闭操作系统并拍快照
bash
[root@localhost ~]# poweroff

步骤二:准备openstack节点
克隆虚拟机并修改基础配置
采用完全克隆方法克隆出其他2台虚拟机(openstack_controller,openstack_compute)。





同样的操作克隆计算节点

注意:2节点的CPU需要开启虚拟化支持。

两节点配置不同的IP,主机名
两节点分别开机,做以下配置。
配置主机名
controller:
bash
[root@localhost ~]# hostnamectl set-hostname controller
compute:
bash
[root@localhost ~]# hostnamectl set-hostname compute
配置IP地址
controller:
bash
[root@controller ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
配置内容:
TYPE=Ethernet
BOOTPROTO=none #这行从dhcp变更为none
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.108.10
NETMASK=255.255.255.0
GATEWAY=192.168.108.2
DNS1=192.168.108.2
bash
[root@controller ~]# nmcli connection reload ens160
[root@controller ~]# nmcli connection up ens160
compute:
bash
[root@compute ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
配置内容:
TYPE=Ethernet
BOOTPROTO=none #这行从dhcp变更为none
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.108.11
NETMASK=255.255.255.0
GATEWAY=192.168.108.2
DNS1=192.168.108.2
bash
[root@compute ~]# nmcli connection reload ens160
[root@compute ~]# nmcli connection up ens160
配置NTP
controller:
bash
[root@controller ~]# vim /etc/chrony.conf
修改配置:
3 # pool 2.centos.pool.ntp.org iburst
4 server ntp.aliyun.com iburst
22 # Allow NTP client access from local network.
23 #allow 192.168.0.0/16
24 allow 192.168.108.0/24
启动服务:
bash
[root@controller ~]# systemctl restart chronyd
[root@controller ~]# systemctl enable chronyd
compute:
bash
[root@compute ~]# vim /etc/chrony.conf
修改配置:
# pool 2.centos.pool.ntp.org iburst
server controller iburst
启动服务:
bash
[root@compute ~]# systemctl restart chronyd
[root@compute ~]# systemctl enable chronyd
关闭操作系统,拍摄快照
controller:
bash
[root@controller ~]# poweroff
compute:
bash
[root@compute ~]# poweroff
步骤三:安装OpenStack和测试
控制节点安装packstack
controller:
bash
[root@controller ~]# yum install -y openstack-packstack
生成应答文件
controller:
bash
[root@controller ~]# packstack --gen-answer-file=answers.txt
Packstack changed given value to required value /root/.ssh/id_rsa.pub
Additional information:
* Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note
that this backend does not support the VPNaaS plugin. Geneve will be used as the encapsulation method for tenant networks
更改应答文件
controller:
bash
[root@controller ~]# vim answers.txt
修改以下配置项:
60 CONFIG_HEAT_INSTALL=y
97 CONFIG_COMPUTE_HOSTS=192.168.108.10,192.168.108.11
909 CONFIG_NEUTRON_OVN_BRIDGE_IFACES=br-ex:ens160
1169 CONFIG_PROVISION_DEMO=n
修改密码(示例为huawei):
bash
[root@controller ~]# sed -i.bak -r 's/(.+PW)=[0-9a-z]+\+\\/huawei/g' answers.txt
关闭NetworkManager
CentOS 8 版本默认使用 NetworkManager 管理网络,但它会和 openstack 网络组件产生冲突,从而导致告警或错误。
controller:
bash
[root@controller ~]# systemctl stop NetworkManager; systemctl disable NetworkManager; systemctl mask NetworkManager
compute:
bash
[root@compute ~]# systemctl stop NetworkManager; systemctl disable NetworkManager; systemctl mask NetworkManager
根据应答文件配置安装openstack
controller:
bash
[root@controller ~]# packstack --answer-file=answers.txt
注意:安装过程中,会在
Testing if ...controller.pp步骤停留很长时间,预计40-50分钟,其他步骤很快。
安装完成

安装成功后会输出以下信息:
- 登录凭据存储在
/root/keystoner_admin文件中。 - 访问 OpenStack Dashboard 浏览:
http://192.168.108.10/dashboard - 安装日志文件位于:
/var/tmp/packstack/20240920-102825-faid5f5g/openstack-setup.log
登录测试
- 用户名:admin
- 密码:huawei

开启network服务
controller:
bash
[root@controller ~]# systemctl start network
[root@controller ~]# systemctl enable network
compute:
bash
[root@compute ~]# systemctl start network
[root@compute ~]# systemctl enable network
配置OpenStack命令补全
bash
# 将命令写入到/etc/bash_completion.d/, 路径一定要写正确
[root@controller ~]# openstack complete >> /etc/bash_completion.d/complete
关机拍快照
openstack_controller 和 openstack_compute 两个节点分别拍摄快照,至此安装结束。
