使用RDO Packstack在CentOS 8上安裝OpenStack Victoria


 

Openstack是一種免費的開源私有雲軟件,通過它我們可以使用單個圖形化界面和通過openstack cli命令輕松管理數據中心的計算,網絡和存儲資源。在本文中,我們將演示如何在具有packstack的CentOS 8系統上安裝Openstack。Packstack是一個命令行實用程序,可以使用packstack部署openstack的不同組件。

帶有packstack的Openstack部署通常用於POC(概念驗證)目的,因此不建議將packstack用於生產部署。使用TripleO方法在生產環境中部署OpenStack。

 

OpenStack的最低系統要求

  • 最低CentOS 8

  • 雙核處理器

  • 8 GB內存

  • 40 GB可用磁盤空間

  • 穩定的互聯網連接

  • 至少一張網卡

  • 主機名 – openstack.example.com

  • IP – 192.168.1.8

  • 網絡 – 192.168.1.0/24

讓我們深入研究openstack的安裝步驟,

 

步驟1)設置主機名並更新/etc/hosts文件

打開終端並使用以下hostnamectl命令設置主機名,

[root@localhost ~]# hostnamectl set-hostname "openstack.example.com"
[root@localhost ~]# exec bash

使用echo命令運行,以在/etc/hosts文件中添加本地解析。

[root@openstack ~]# echo -e "192.168.1.8\topenstack.example.com" >> /etc/hosts

步驟2)禁用NetworkManager並使用network-scripts配置網絡

Network-Manager是CentOS 8中用於管理網絡的默認工具,但是對於Openstack,我們必須禁用它,因為Openstack網絡無法與network-manager一起正常工作。為了替換NetworkManager,我們必須安裝network-scripts。

要禁用network-manager,請運行以下命令,

[root@openstack ~]# systemctl disable NetworkManager
[root@openstack ~]# systemctl stop NetworkManager

運行以下dnf命令以安裝network-scripts

[root@openstack ~]# dnf install network-scripts -y

一旦安裝了network-scripts軟件包,我們就可以使用本機network.service管理網絡(ifcfg- *文件)

現在讓我們在ifcfg-enp0s3文件中配置IP地址並啟動網絡服務

root@openstack ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

網絡文件ifcfg-enp0s3-centos8

保存並退出文件,然后使用以下命令啟動網絡服務,

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

現在,使用ip命令驗證是否已將IP分配給NIC(enp0s3),

[root@openstack ~]# ip a s enp0s3

ifcfg-enp0s3-ip-command-linux

 

步驟3)啟用OpenStack repositories並安裝packstack工具

在撰寫本文時,victoria openstack已經穩定可用,因此請運行以下命令來配置其repositories

[root@openstack ~]# dnf config-manager --enable PowerTools
[root@openstack ~]# dnf install -y centos-release-openstack-victoria

現在,安裝所有可用的更新並重新啟動系統,

[root@openstack ~]# dnf update -y
[root@openstack ~]# reboot

重新啟動后,登錄系統,執行以下dnf命令安裝packstack工具

[root@openstack ~]# dnf install -y openstack-packstack

 

步驟4)生成答案文件並使用packstack安裝openstack

使用packstack命令生成應答文件,

[root@openstack ~]# packstack --gen-answer-file /root/openstack-answer.txt

生成應答文件后,使用vi編輯器編輯以下參數,

[root@openstack ~]# vi /root/openstack-answer.txt
..............
CONFIG_HEAT_INSTALL=y
CONFIG_PROVISION_DEMO=n
CONFIG_KEYSTONE_ADMIN_PW=P@ssw0rd
CONFIG_NEUTRON_OVN_BRIDGE_IFACES=br-ex:enp0s3
..............

保存並退出文件。

根據您的設置替換接口名稱(enp0s3)。

注意:默認的“租戶”網絡類型的驅動器設置為“ genve ”,默認的neutron類型的驅動器設置為“ genveflat ”。如果希望更改這些默認參數,請更新應答文件中的以下幾行。在此演示中,我將不更新這些參數。

CONFIG_NEUTRON_ML2_TYPE_DRIVERS=geneve,flat
CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=geneve

運行以下命令以使用應答文件開始openstack部署。

[root@openstack ~]# packstack --answer-file /root/openstack-answer.txt

部署大約需要20到30分鍾,具體取決於您系統的硬件和互聯網速度。成功安裝后,我們將獲得以下信息:

Openstack成功完整安裝屏幕

現在,驗證是否已將來自enp03接口的IP分配給網橋br-ex,並確認是否已將接口enp0s3作為端口添加到ovs-bridge中。

運行以下命令:

[root@openstack ~]# ip a s enp0s3
[root@openstack ~]# ip a s br-ex
[root@openstack ~]# ovs-vsctl show

ovs-vsctl-command-centos8

上面的輸出確認安裝成功,並且還根據應答文件配置了網絡。

 

步驟5)訪問Horizon儀表板

現在嘗試登錄Horizon儀表板。在上面的輸出中已經指定了URL,在我的情況下,URL是http://192.168.1.8/dashboard,使用我們在應答文件中指定的用戶名admin和密碼。

可以可以查看認證文件“ keystonerc_admin ”獲取登錄憑據

OpenStack地平線儀表板CentOS8

實例概述-OpenStack-儀表板

現在,讓我們通過啟動一個實例來測試openstack部署。

 

步驟6)通過啟動實例測試和驗證OpenStack安裝

在openstack中啟動實例之前,首先必須創建網絡,路由器和上傳鏡像。因此,讓我們首先使用以下neutron命令在管理租戶中創建外部網絡,

[root@openstack ~]# source keystonerc_admin
[root@openstack ~(keystone_admin)]# neutron net-create external_network --provider:network_type flat --provider:physical_network extnet --router:external

現在,通過運行以下neutron命令,將您的flat網絡的子網添加到外部網絡。

[root@openstack ~(keystone_admin)]# neutron subnet-create --name public_subnet --enable_dhcp=True --allocation-pool=start=192.168.1.210,end=192.168.1.230 --gateway=192.168.1.1 external_network 192.168.1.0/24

通過執行以下neutron命令創建路由器,並使用外部網絡設置其網關

[root@openstack ~(keystone_admin)]# neutron router-create dev-router
[root@openstack ~(keystone_admin)]# neutron router-gateway-set dev-router external_network

創建私有網絡並將一個子網附加到該私有網絡。運行以下neutron命令,

[root@openstack ~(keystone_admin)]# neutron net-create pvt_net
[root@openstack ~(keystone_admin)]# neutron subnet-create --name pvt_subnet pvt_net 10.20.1.0/24

使用以下neutron命令將pvt_net接口添加到路由器“ dev_router ”,

[root@openstack ~(keystone_admin)]# neutron router-interface-add dev-router  pvt_subnet

現在下載Cirros 鏡像,然后上傳到OpenStack中

[root@openstack ~(keystone_admin)]# wget http://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img
[root@openstack ~(keystone_admin)]# openstack image create --disk-format qcow2 --container-format bare --public --file cirros-0.5.1-x86_64-disk.img cirros

現在回到地Dashboard儀表板並驗證網絡拓撲

網絡拓撲-OpenStack-儀表板

上面確認了私有和外部網絡以及路由器已經正確設置。

創建虛擬機之前的最后一步,更新默認安全組,添加icmp和ssh入口規則,在網絡選項卡下單擊“安全組”,單擊“管理規則”,然后單擊“添加規則

管理安全組規則ICMP OpenStack

同樣為ssh添加規則

管理安全組規則-ssh-OpenStack

點擊添加

現在,啟動openstack實例的所有要求都已滿足。單擊計算選項卡,然后選擇實例選項,然后單擊“啟動實例

VM創建OpenStack

成功啟動虛擬機后,我們將獲得以下內容,

實例-狀態-OpenStack-儀表板

現在,將浮動IP關聯到實例(demo_vm),在“操作”選項卡下,選擇“關聯浮動IP

關聯浮動IP選項Openstack

現在選擇IP或單擊+號從外部網絡獲取浮動IP,然后將其關聯

選擇IP關聯端口OpenStack

IP與虛擬機關聯后,“ IP地址”選項下將顯示浮動IP ,如下所示

浮動IP地址Openstack VM

現在嘗試使用浮動ip訪問此demo_vm,使用cirros作為用戶,並使用' gocubsgo '作為密碼

使用浮動IP OpenStack訪問VM

上面的輸出確認我們可以通過浮動ip訪問我們的實例。

 

總結

以上已經通過Packstack在最新的CentOS8.2上成功安裝好了OpenStack Victoria版本。相對以往,OpenStack從Ussuri開始不再支持Python2,而CentOS8默認為Python3。因此后續的OpenStack版本推薦的系統也將由CentOS7升級為CentOS8。

本次安裝過程也遇到一些問題,比如CentOS8開始,默認不再使用network-scripts管理網絡,且系統默認也不安裝network-scripts相應的軟件包。但是對於Openstack,我們必須禁用它,因為Openstack網絡無法與network-manager一起正常工作。

 

原創:新鈦雲服 祝祥

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM