CentOS Stream 8 通过 Packstack 安装开源 OpenStack(V版)
需要了解
- 假造化平台版本 VMware Workstation 16.2.3
- 操纵系统版本 CentOS Linux Stream 8
- 安装源您可访问 阿里永世镜像站 / 华为永世镜像站 或其他镜像站进行下载
- 环境用到 2台 假造机,单网卡,并为其配置 静态 IP 及 DNS
- 从 Ussuri 版本开始,需要使用 CentOS 8 或 RHEL 8,截至发稿前,Stream 8 版本支持的最高版本为 xena
- 搭建 openstack 最麻烦的是 yum 源问题,发起严格按照本篇博客进行 yum 源配置操纵
- 保姆级别,按照步骤操纵,绝对一次性安装乐成。
环境规划
控制节点及盘算节点必须开启假造化引擎 Intel VT-x 或 AMD-V。控制节点将来将被复用为盘算节点和网络节点。假造机配置可根据实际环境进行调整。
主机名IP网关/DNSCPU/内存磁盘脚色备注controller192.168.129.185192.168.129.24c8g100g控制/网络/盘算节点必须开启假造化引擎computer192.168.129.186192.168.129.24c8g100g盘算节点必须开启假造化引擎 系统环境配置
网络配置
当前环境中控制节点及盘算节点网卡范例为 NAT
网卡配置、关闭防火墙、Selinux、NetworkManager
- ### 网卡配置
- [root@tmp ~]# hostnamectl set-hostname controller
- [root@tmp ~]# hostname
- controller
- [root@tmp ~]# cd /etc/sysconfig/network-scripts/
- [root@tmp network-scripts]# ls
- ifcfg-ens160
- [root@tmp network-scripts]# vi ifcfg-ens160
- [root@tmp network-scripts]# cat ifcfg-ens160
- TYPE=Ethernet
- BOOTPROTO=none
- NAME=ens160
- DEVICE=ens160
- ONBOOT=yes
- IPADDR=192.168.129.185
- NETMASK=255.255.255.0
- GATEWAY=192.168.129.2
- DNS1=192.168.129.2
- ### 可以再配置完ip之后关机拍摄快照
复制代码
- ### 关闭防火墙
- [root@controller ~]# systemctl stop firewalld
- [root@controller ~]# systemctl disable firewalld
- Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
- Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
- ### 关闭SELINUX
- [root@controller ~]# setenforce 0
- [root@controller ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
- ### 关闭NetworkManager
- [root@controller ~]# systemctl stop NetworkManager
- [root@controller ~]# systemctl disable NetworkManager
- Removed /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
- Removed /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
- Removed /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
复制代码
- ### 网卡配置
- [root@tmp ~]# hostnamectl set-hostname computer
- [root@tmp ~]# hostname
- computer
- [root@tmp ~]# cd /etc/sysconfig/network-scripts/
- [root@tmp network-scripts]# ls
- ifcfg-ens160
- [root@tmp network-scripts]# vi ifcfg-ens160
- [root@tmp network-scripts]# cat ifcfg-ens160
- TYPE=Ethernet
- BOOTPROTO=none
- NAME=ens160
- DEVICE=ens160
- ONBOOT=yes
- IPADDR=192.168.129.186
- NETMASK=255.255.255.0
- GATEWAY=192.168.129.2
- DNS1=192.168.129.2
- [root@tmp network-scripts]#
- ### 可以再配置完ip之后关机拍摄快照
复制代码 根据实际环境给处置惩罚器
- ### 关闭防火墙
- [root@computer ~]# systemctl stop firewalld
- [root@computer ~]# systemctl disable firewalld
- Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
- Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
- ### 关闭SELINUX
- [root@computer ~]# setenforce 0
- [root@computer ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
- ### 关闭NetworkManager
- [root@computer ~]# systemctl stop NetworkManager
- [root@computer ~]# systemctl disable NetworkManager
- Removed /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
- Removed /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
- Removed /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
复制代码 配置ip及主机名安装底子包
- ### 配置ip及主机名
- [root@controller ~]# vi /etc/hosts
- [root@controller ~]# cat /etc/hosts
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 192.168.129.185 controller
- 192.168.129.186 computer
- [root@controller ~]# ping computer
- ### 安装基础包
- [root@controller ~]# yum install -y vim net-tools bash-completion chrony.x86_64 centos-release-openstack-victoria.noarch
复制代码
- ### 配置ip及主机名
- [root@computer ~]# vi /etc/hosts
- [root@computer ~]# cat /etc/hosts
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 192.168.129.185 controller
- 192.168.129.186 computer
- [root@computer ~]# ping controller
- ### 安装基础包
- [root@computer ~]# yum install -y vim net-tools bash-completion chrony.x86_64 centos-release-openstack-victoria.noarch
复制代码 如果在安装底子包出错,重启之后没有ip,可以重启 NetworkManager,再讲其关闭
NTP时间同步配置
Linux 8 版本开始默认不再支持 ntpdate 工具,换用 chronyd 进行同步
- [root@controller ~]# vi /etc/chrony.conf
- # Please consider joining the pool (http://www.pool.ntp.org/join.html).
- #pool 2.centos.pool.ntp.org iburst
- sever pool ntp.aliyun.com iburst ### 配置了阿里云ntp
- # Record the rate at which the system clock gains/losses time.
- driftfile /var/lib/chrony/drift
- ..............
- ### 启动服务
- [root@controller ~]# systemctl start chronyd.service
- Job for chronyd.service failed because the control process exited with error code.
- See "systemctl status chronyd.service" and "journalctl -xe" for details.
- [root@controller ~]# systemctl enable chronyd.service
复制代码
- [root@computer ~]# vi /etc/chrony.conf
- # Please consider joining the pool (http://www.pool.ntp.org/join.html).
- #pool 2.centos.pool.ntp.org iburst
- sever pool ntp.aliyun.com iburst ### 配置了阿里云ntp
- # Record the rate at which the system clock gains/losses time.
- driftfile /var/lib/chrony/drift
- ..............
- ### 启动服务
- [root@computer ~]# systemctl start chronyd.service
- Job for chronyd.service failed because the control process exited with error code.
- See "systemctl status chronyd.service" and "journalctl -xe" for details.
- [root@computer ~]# systemctl enable chronyd.service
复制代码 配置YUM源
- [root@computer ~]# mkdir /etc/yum.repos.d/bak
- [root@computer ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
- ### 通过远程拷贝方式将 控制节点 yum 文件,拉取到计算节点
- [root@compute ~]# scp controller:/etc/yum.repos.d/cloudcs.repo /etc/yum.repos.d/
- The authenticity of host 'controller (192.168.100.128)' can't be established.
- ECDSA key fingerprint is SHA256:0wisA68htG476jVggvEX5wWHxAK9nmDDWXzLAmwP8as.
- Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
- Warning: Permanently added 'controller,192.168.100.128' (ECDSA) to the list of known hosts.
- root@controller's password:
- cloudcs.repo
- [root@computer ~]#
- [root@computer ~]# ls /etc/yum.repos.d/
- bak cloudcs.repo
- [root@computer ~]# yum clean all
- 27 files removed
- [root@computer ~]# yum repolist all
- repo id repo name status
- appstream CentOS Stream 8 - AppStream enabled
- baseos CentOS Stream 8 - BaseOS enabled
- centos-ceph-pacific CentOS - Ceph Pacific enabled
- centos-nfv-openvswitch CentOS Stream 8 - NFV OpenvSwitch enabled
- centos-openstack-victoria CentOS 8 - OpenStack victoria enabled
- centos-rabbitmq-38 CentOS-8 - RabbitMQ 38 enabled
- extras CentOS Stream - Extras enabled
- extras-common CentOS Stream 8 - Extras packages enabled
- highavailability CentOS Stream 8 - HighAvailability enabled
- nfv CentOS Stream 8 - NFV enabled
- powertools CentOS Stream 8 - PowerTools enabled
- resilientstorage CentOS Stream 8 - ResilientStorage enabled
- rt CentOS Stream 8 - RT enabled
- [root@computer ~]#
复制代码 安装配置
控制节点安装 PackStack 工具
- [root@controller ~]# yum install -y openstack-packstack
- ..............
- rubygems-2.7.6.3-110.module_el8.6.0+1187+541216eb.noarch
- yaml-cpp-0.6.3-1.el8.x86_64
- Complete!
复制代码 生成应答文件
- [root@controller ~]# packstack --help | grep ans
- --gen-answer-file=GEN_ANSWER_FILE
- Generate a template of an answer file.
- --validate-answer-file=VALIDATE_ANSWER_FILE
- Check if answerfile contains unexpected options.
- --answer-file=ANSWER_FILE
- answerfile will also be generated and should be used
- -o, --options Print details on options available in answer file(rst
- Packstack a second time with the same answer file and
- attribute where "y" means an account is disabled.
- --manila-netapp-transport-type=MANILA_NETAPP_TRANSPORT_TYPE
- The transport protocol used when communicating with
- [root@controller ~]# packstack --gen-answer-file=memeda.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
复制代码 编辑应答文件
留意设置参数 CONFIG_NEUTRON_OVN_BRIDGE_IFACES ,OVN 会自动创建 br-ex 假造互换机并使 ens160 桥接到 br-ex 假造互换机上,将来云主机通过 br-ex 可以连通外部网络。
- [root@controller ~]# cat /etc/redhat-release
- CentOS Stream release 8
- [root@controller ~]# vi memeda.txt
- 92 # Server on which to install OpenStack services specific to the
- 93 # controller role (for example, API servers or dashboard).
- 94 CONFIG_CONTROLLER_HOST=192.168.129.185
- 95
- ### 要安装计算服务的服务器。我们在计算和控制节点都安装,复用
- 96 # List the servers on which to install the Compute service.
- 97 CONFIG_COMPUTE_HOSTS=192.168.129.185,192.168.129.186
- ### 身份验证密码
- 322 # Password to use for the Identity service 'admin' user.
- 323 CONFIG_KEYSTONE_ADMIN_PW=redhat
- ### 创建测试用例,关闭
- 1168 # Specify 'y' to provision for demo usage and testing. ['y', 'n']
- 1169 CONFIG_PROVISION_DEMO=n
- ### 编排组件
- 59 # Specify 'y' to install OpenStack Orchestration (heat). ['y', 'n ']
- 60 CONFIG_HEAT_INSTALL=y
- ### 桥接,映射射到自己控制节点的网卡
- 907 # ovn-bridge-mappings=ext-net:br-ex --os-neutron-ovn-bridge-
- 908 # interfaces=br-ex:eth0
- 909 CONFIG_NEUTRON_OVN_BRIDGE_IFACES=br-ex:ens160 -------注意自己网卡
复制代码 执行应答文件进行安装
- ### 大概需要等待30分钟
- [root@controller ~]# packstack --answer-file=memeda.txt
- Welcome to the Packstack setup utility
- The installation log file is available at: /var/tmp/packstack/20230806-151155-lamn_upk/openstack-setup.log
- Installing:
- Clean Up [ DONE ]
- Discovering ip protocol version [ DONE ]
- root@192.168.129.186's password: ### 输入两台节点密码
- root@192.168.129.185's password: ### 输入两台节点密码
- Setting up ssh keys [ DONE ]
- Preparing servers [ DONE ]
- Pre installing Puppet and discovering hosts' details [ DONE ]
- Preparing pre-install entries [ DONE ]
- Setting up CACERT [ DONE ]
- Preparing AMQP entries [ DONE ]
- Preparing MariaDB entries [ DONE ]
- Fixing Keystone LDAP config parameters to be undef if empty[ DONE ]
- Preparing Keystone entries [ DONE ]
- Preparing Glance entries [ DONE ]
- Checking if the Cinder server has a cinder-volumes vg[ DONE ]
- Preparing Cinder entries [ DONE ]
- Preparing Nova API entries [ DONE ]
- Creating ssh keys for Nova migration [ DONE ]
- Gathering ssh host keys for Nova migration [ DONE ]
- Preparing Nova Compute entries [ DONE ]
- Preparing Nova Scheduler entries [ DONE ]
- Preparing Nova VNC Proxy entries [ DONE ]
- Preparing OpenStack Network-related Nova entries [ DONE ]
- Preparing Nova Common entries [ DONE ]
- Preparing Neutron API entries [ DONE ]
- Preparing Neutron L3 entries [ DONE ]
- Preparing Neutron L2 Agent entries [ DONE ]
- Preparing Neutron DHCP Agent entries [ DONE ]
- Preparing Neutron Metering Agent entries [ DONE ]
- Checking if NetworkManager is enabled and running [ DONE ]
- Preparing OpenStack Client entries [ DONE ]
- Preparing Horizon entries [ DONE ]
- Preparing Swift builder entries [ DONE ]
- Preparing Swift proxy entries [ DONE ]
- Preparing Swift storage entries [ DONE ]
- Preparing Heat entries [ DONE ]
- Preparing Heat CloudFormation API entries [ DONE ]
- Preparing Gnocchi entries [ DONE ]
- Preparing Redis entries [ DONE ]
- Preparing Ceilometer entries [ DONE ]
- Preparing Aodh entries [ DONE ]
- Preparing Puppet manifests [ DONE ]
- Copying Puppet modules and manifests [ DONE ]
- Applying 192.168.129.185_controller.pp
- 192.168.129.185_controller.pp: [ DONE ]
- Applying 192.168.129.185_network.pp
- 192.168.129.185_network.pp: [ DONE ]
- Applying 192.168.129.186_compute.pp
- Applying 192.168.129.185_compute.pp
- 192.168.129.185_compute.pp: [ DONE ]
- 192.168.129.186_compute.pp: [ DONE ]
- Applying Puppet manifests [ DONE ]
- Finalizing [ DONE ]
- **** Installation completed successfully ******
- 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
- * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
- * File /root/keystonerc_admin has been created on OpenStack client host 192.168.129.185. To use the command line tools you need to source the file.
- * To access the OpenStack Dashboard browse to http://192.168.129.185/dashboard .
- Please, find your login credentials stored in the keystonerc_admin in your home directory.
- * The installation log file is available at: /var/tmp/packstack/20230806-151155-lamn_upk/openstack-setup.log
- * The generated manifests are available at: /var/tmp/packstack/20230806-151155-lamn_upk/manifests
复制代码 完成安装
测试登录
打开欣赏器,访问 http://192.168.129.185/dashboard
账号:admin
密码:redhat
开启network
因关闭 NetworkManager 服务,会导致节点重启后网络无法自动启用,也会导致 openstack 组件异常,以是启用 network 来替换 NetworkManager 服务。
- [root@controller ~]# systemctl enable network
- network.service is not a native service, redirecting to systemd-sysv-install.
- Executing: /usr/lib/systemd/systemd-sysv-install enable network
- [root@controller ~]# systemctl start network
复制代码
- [root@computer ~]# systemctl enable network
- network.service is not a native service, redirecting to systemd-sysv-install.
- Executing: /usr/lib/systemd/systemd-sysv-install enable network
- [root@computer ~]# systemctl start network
复制代码
- 在使用 Packstack 工具搭建 OpenStack 时需要关闭 NetworkManager 而开启并使用network,重要是因为OpenStack 环境对网络的要求和配置与NetworkManager的工作方式不太适配NetworkManager是一个用于图形和命令行环境下的网络管理工具,旨在为桌面用户提供便捷的网络配置。它能够处置惩罚各种网络范例,包罗有线、无线、蓝牙等,并根据网络环境进行动态管理。然而,在 OpenStack 环境中,网络需求通常更加复杂,需要更多的控制和自界说。
- OpenStack是一个用于搭建云底子办法的开源平台,涉及到多个假造机、网络、存储等组件的配置和管理。在 OpenStack 环境中,网络通常需要进行高度定制和精细控制,以满意不同的租户和应用场景的需求。这与 NetworkManager 提供的自动化和动态网络管理方式不太吻合。
- 而采用传统的 network 服务,您可以更正确地配置和管理网络接口、IP 地址、路由等参数以满意OpenStack环境中的复杂网络需求。这对于创建假造网络、隔离租户、实现网络互通等 OpenStack 功能非常重要。
- 因此,为了确保 OpenStack 环境的网络配置能够正确地满意其需求,通常会发起在搭建OpenStack 时关闭 NetworkManager,使用传统的 network 服务来进行网络配置。这样可以更好地控制和调整网络参数,以确保 OpenStack 网络的稳固性和性能
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |