Centos8.3下用packstack安裝四節點openstack-victoria版本
前言
victoria作爲openstack2020年的最後一個穩定版本,現已支持packstack安裝,本文將根據自身環境部署經驗,分享部署過程。
環境準備
四臺centos8.3的虛機或物理機,具體配置如下:
控制節點:至少需要6G內存(內存過小安裝過程可能報錯),至少100G硬盤,2張網卡
網絡節點:至少4G內存,3張網卡
計算節點:內存和硬盤儘量大(可以多創虛機),dvr模式3張網卡,非dvr2張網卡
網段劃分:管理網(enps3)可以聯網,數據網(enp0s8)內部網絡,br-ex網卡(不設置ip)
設置hostname
hostnamectl set-hostname controller
修改hosts文件
vim /etc/hosts
禁用NetworkManager並使用network-scripts配置網絡
centos8默認使用NetworkManager管理網絡,對於openstack來說仍然需要network-scripts配置網絡
systemctl disable NetworkManager
systemctl stop NetworkManager
dnf install network-scripts -y
systemctl enable network
systemctl start network
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
vim /etc/sysconfig/network-scripts/ifcfg-enp0s8
vim /etc/sysconfig/network-scripts/ifcfg-enp0s9
systemctl restart network
管理網和數據網不要在同一個網段,ip地址最好配成靜態的,enp0s9設置成靜態,不配置ip
禁用防火牆和SELINUX
systemctl disable firewalld
systemctl stop firewalld
setenforce 0
啓用powertools
dnf update -y
dnf config-manager --enable powertools
啓用OpenStack repositories並安裝packstack
僅在控制節點執行
dnf install -y centos-release-openstack-victoria
dnf update -y
dnf install -y openstack-packstack
生成應答文件並根據需要修改
僅在控制節點執行
packstack --gen-answer-file openstack-victoria-20210101.txt
vim openstack-victoria-20210101.txt
v版本二層默認使用ovn,可以根據需要改成openvswitch,需要修改的地方大致如下:
CONFIG_DEFAULT_PASSWORD=
CONFIG_CONTROLLER_HOST=
CONFIG_COMPUTE_HOSTS=
CONFIG_NETWORK_HOSTS=
CONFIG_STORAGE_HOST=
CONFIG_SAHARA_HOST=
CONFIG_AMQP_HOST=
CONFIG_MARIADB_HOST=
CONFIG_KEYSTONE_LDAP_URL=
CONFIG_NEUTRON_L3_EXT_BRIDGE=br-ex
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=geneve,flat,vlan,vxlan
CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan
CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch(默認是ovn,根據需要修改)
CONFIG_NEUTRON_L2_AGENT=openvswitch
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=extnet:br-ex
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:enp0s9
CONFIG_NEUTRON_OVS_TUNNEL_IF=enp0s8
CONFIG_NEUTRON_OVS_TUNNEL_SUBNETS=
開始部署
僅在控制節點執行
packstack --answer-file=openstack-victoria-20210101.txt
根據提示輸入各個節點的root賬戶密碼
部署過程大概持續30分鐘左右,主要取決於網速和硬件配置
中間可能會報錯,檢查一下網絡配置以及內存是否夠用,一般重新執行上面的命令即可
Installing:
Clean Up [ DONE ]
Discovering ip protocol version [ DONE ]
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 LBaaS Agent 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 MongoDB entries [ DONE ]
Preparing Redis entries [ DONE ]
Preparing Ceilometer entries [ DONE ]
Preparing Aodh entries [ DONE ]
Preparing Sahara entries [ DONE ]
Preparing Nagios server entries [ DONE ]
Preparing Nagios host entries [ DONE ]
Preparing Puppet manifests [ DONE ]
Copying Puppet modules and manifests [ DONE ]
Applying 192.168.1.31_controller.pp
192.168.1.31_controller.pp: [ DONE ]
Applying 192.168.1.32_network.pp
192.168.1.32_network.pp: [ DONE ]
Applying 192.168.1.33_compute1.pp
192.168.1.33_compute.pp: [ DONE ]
Applying 192.168.1.34_compute2.pp
192.168.1.34_compute.pp: [ DONE ]
Applying Puppet manifests [ DONE ]
Finalizing [ DONE ]
**** Installation completed successfully ******
安裝成功
添加sudoer權限
neutron privsep需要使用sudo權限,但剛安裝完的環境默認沒有配置。
四個節點均需執行
修改neutron.conf
vim /etc/neutron/neutron.conf
[privsep]
user = neutron
helper_command = sudo privsep-helper
vim /etc/sudoers.d/neutron
添加
neutron ALL = (root) NOPASSWD: ALL
最後重啓neutron-openvswitch-agent(控制節點不用重啓)
systemctl restart neutron-openvswitch-agent.service
訪問horizon
最後在瀏覽器裏輸入控制節點的ip,就可以訪問openstack的horizon界面了。
用戶名和密碼可以在控制節點的keystonerc_admin文件裏查到,安裝成功後會自動生成這個文件。
. keystonerc_admin可以使用openstack命令行。