CentOS Stream8 基于 Packstack 搭建 OpenStack 云平台全流程实战

📅 2026/7/22 4:57:29 👁️ 阅读次数 📝 编程学习
CentOS Stream8 基于 Packstack 搭建 OpenStack 云平台全流程实战

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源

[root@localhost ~]# rm -rf /etc/yum.repos.d/*[root@localhost ~]# cat <<EOF > /etc/yum.repos.d/openstack.repo[centos-openstack-victoria]name=CentOS8- OpenStack victoriabaseurl=https://mirrors.aliyun.com/centos-vault/8-stream/cloud/x86_64/openstack-victoria/gpgcheck=0enabled=1[highavailability]name=CentOS Stream8- HighAvailabilitybaseurl=https://mirrors.aliyun.com/centos-vault/8-stream/HighAvailability/x86_64/os/gpgcheck=0enabled=1[nfV]name=CentOS Stream8- NFVbaseurl=https://mirrors.aliyun.com/centos-vault/8-stream/NFV/x86_64/os/gpgcheck=0enabled=1[rt]name=CentOS Stream8- RTbaseurl=https://mirrors.aliyun.com/centos-vault/8-stream/RT/x86_64/os/gpgcheck=0enabled=1[resilientstorage]name=CentOS Stream8- ResilientStoragebaseurl=https://mirrors.aliyun.com/centos-vault/8-stream/ResilientStorage/x86_64/os/gpgcheck=0enabled=1[extras-common]name=CentOS Stream8- Extras packagesbaseurl=https://mirrors.aliyun.com/centos-vault/8-stream/extras/x86_64/extras-common/gpgcheck=0enabled=1[extras]name=CentOS Stream$releasever- Extrasbaseurl=https://mirrors.aliyun.com/centos-vault/8-stream/extras/x86_64/os/gpgcheck=0enabled=1[centos-ceph-pacific]name=CentOS - Ceph Pacificbaseurl=https://mirrors.aliyun.com/centos-vault/8-stream/storage/x86_64/ceph-pacific/gpgcheck=0enabled=1[centos-rabbitmq-38]name=CentOS-8 - RabbitMQ38baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/messaging/x86_64/rabbitmq-38/gpgcheck=0enabled=1[centos-nfv-openvswitch]name=CentOS Stream8- NFV Openvswitchbaseurl=https://mirrors.aliyun.com/centos-vault/8-stream/nfv/x86_64/openvswitch-2/gpgcheck=0enabled=1[baseos]name=CentOS Stream8- BaseOSbaseurl=https://mirrors.aliyun.com/centos-vault/8-stream/BaseOS/x86_64/os/gpgcheck=0enabled=1[appstream]name=CentOS Stream8- AppStreambaseurl=https://mirrors.aliyun.com/centos-vault/8-stream/AppStream/x86_64/os/gpgcheck=0enabled=1[powertools]name=CentOS Stream8- PowerToolsbaseurl=https://mirrors.aliyun.com/centos-vault/8-stream/PowerTools/x86_64/os/gpgcheck=0enabled=1EOF
[root@localhost ~]# yum clean all[root@localhost ~]# yum makecache

安装方便操作环境包及基础软件包

[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

[root@localhost ~]# echo '192.168.108.10 controller' >> /etc/hosts[root@localhost ~]# echo '192.168.108.11 compute' >> /etc/hosts

关闭SELinux

[root@localhost ~]# sed -i '/^SELINUX=/CSELINUX=disabled/' /etc/selinux/config

编辑网卡信息

[root@localhost ~]# cd /etc/sysconfig/network-scripts/[root@localhost network-scripts]# vim ifcfg-ens160

配置内容:

TYPE=Ethernet BOOTPROTO=dhcp NAME=ens160 DEVICE=ens160 ONBOOT=yes

清除密钥信息

[root@localhost ~]# cd /etc/ssh/[root@localhost ssh]# rm -rf ssh_host_*

清除Machine ID

[root@localhost ~]# cat /dev/null > /etc/machine-id[root@localhost ~]# cat /etc/machine-id

关闭操作系统并拍快照

[root@localhost ~]# poweroff

步骤二:准备openstack节点

克隆虚拟机并修改基础配置

采用完全克隆方法克隆出其他2台虚拟机(openstack_controller,openstack_compute)。




同样的操作克隆计算节点

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

两节点配置不同的IP,主机名

两节点分别开机,做以下配置。

配置主机名

controller:

[root@localhost ~]# hostnamectl set-hostname controller

compute:

[root@localhost ~]# hostnamectl set-hostname compute
配置IP地址

controller:

[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
[root@controller ~]# nmcli connection reload ens160[root@controller ~]# nmcli connection up ens160

compute:

[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
[root@compute ~]# nmcli connection reload ens160[root@compute ~]# nmcli connection up ens160
配置NTP

controller:

[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

启动服务:

[root@controller ~]# systemctl restart chronyd[root@controller ~]# systemctl enable chronyd

compute:

[root@compute ~]# vim /etc/chrony.conf

修改配置:

# pool 2.centos.pool.ntp.org iburst server controller iburst

启动服务:

[root@compute ~]# systemctl restart chronyd[root@compute ~]# systemctl enable chronyd
关闭操作系统,拍摄快照

controller:

[root@controller ~]# poweroff

compute:

[root@compute ~]# poweroff

步骤三:安装OpenStack和测试

控制节点安装packstack

controller:

[root@controller ~]# yum install -y openstack-packstack

生成应答文件

controller:

[root@controller ~]# packstack --gen-answer-file=answers.txtPackstack 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 methodfortenant networks

更改应答文件

controller:

[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):

[root@controller ~]# sed -i.bak -r 's/(.+PW)=[0-9a-z]+\+\\/huawei/g' answers.txt

关闭NetworkManager

CentOS 8 版本默认使用 NetworkManager 管理网络,但它会和 openstack 网络组件产生冲突,从而导致告警或错误。

controller:

[root@controller ~]# systemctl stop NetworkManager; systemctl disable NetworkManager; systemctl mask NetworkManager

compute:

[root@compute ~]# systemctl stop NetworkManager; systemctl disable NetworkManager; systemctl mask NetworkManager

根据应答文件配置安装openstack

controller:

[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:

[root@controller ~]# systemctl start network[root@controller ~]# systemctl enable network

compute:

[root@compute ~]# systemctl start network[root@compute ~]# systemctl enable network

配置OpenStack命令补全

# 将命令写入到/etc/bash_completion.d/, 路径一定要写正确[root@controller ~]# openstack complete >> /etc/bash_completion.d/complete

关机拍快照

openstack_controller 和 openstack_compute 两个节点分别拍摄快照,至此安装结束。