本次openstack多節點自動化安裝,采用4台虛拟機節點為示範環境,首先示範如何自動化快速搭建一套openstack雲平台
實驗環境:
1、控制節點
CPU:雙核雙線程-CPU虛拟化開啟
記憶體:8G(最小記憶體6G ,低于6G否則會出問題 )
硬碟:300G
網卡:VM1-192.168.100.10 NAT-20.0.0.10
有2個網卡:1、VM1(内部網卡) 2、NAT(可以上網)
作業系統:Centos 7.6 --最小化安裝
2、計算節點1(網絡子產品)
CPU:雙核雙線程-CPU虛拟化開啟
記憶體:8G(最小記憶體6G ,低于6G否則會出問題 )
硬碟:300G
網卡:VM1-192.168.100.11
作業系統:Centos 7.6–最小化安裝
3、計算節點2(網絡子產品)
CPU:雙核雙線程-CPU虛拟化開啟
記憶體:8G(最小記憶體6G ,低于6G否則會出問題 )
硬碟:300G
網卡:VM1-192.168.100.12
作業系統:Centos 7.6–最小化安裝
每台都必須把虛拟化勾上
實驗步驟:
一、基本環境配置
二、本地YUM源部署
三、時間同步
四、免互動配置
五、Openstack一鍵部署
六、Openstack登入測試
一:基本環境配置
1:【控制節點 ct 】配置
(1)配置IP位址(添加雙網卡)
VM1模式:内部網卡 與兩個計算節點通訊
NAT模式:連接配接外部網絡,可以上網
VM1,内部網絡:
# cd /etc/sysconfig/network-scripts
# cp -p ifcfg-ens33 ifcfg-ens36
# vi /etc/sysconfig/network-scripts/ifcfg-ens36
dhcp 改為 static
UUID一行删掉
ens33 改為 ens36
改為 ONBOOT=yes
末行添加:
IPADDR=192.168.100.10
NETMASK=255.255.255.0
NAT模式,必須是NAT網段的IP範圍:
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
dhcp 改為 static
改為 ONBOOT=yes
末行添加:
IPADDR=192.168.188.188
NETMASK=255.255.255.0
GATEWAY=192.168.188.2
# vi /etc/resolv.conf
nameserver 8.8.8.8
# systemctl restart network
# ping www.baidu.com
# ping 8.8.8.8
(2)更改主機名, 配置hosts映射
# hostnamectl set-hostname ct
# su
# vi /etc/hosts
末行插入
192.168.100.10 ct
192.168.100.11 c1
192.168.100.12 c2
(3)關閉防火牆,核心防護,網絡管理
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vi /etc/selinux/config
改為 SELINUX=disabled
# systemctl stop NetworkManager
# systemctl disable NetworkManager
2:【計算節點 c1 】配置
(1)配置IP位址
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
dhcp 改為 static
改: ONBOOT=yes
加:
IPADDR=192.168.100.11
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
# systemctl restart network
# ping 192.168.100.10
(2)更改主機名
# hostnamectl set-hostname c1
# su
# vi /etc/hosts
末行插入
192.168.100.10 ct
192.168.100.11 c1
192.168.100.12 c2
(3)關閉防火牆,核心防護,網絡管理
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vi /etc/selinux/config
改為 SELINUX=disabled
# systemctl stop NetworkManager
# systemctl disable NetworkManager
3:【計算節點 c2 】配置
(1)配置IP位址
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
dhcp 改為 static
改為 ONBOOT=yes
加:
IPADDR=192.168.100.12
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
# systemctl restart network
# ping 192.168.100.11
# ping 192.168.100.10
(2)更改主機名
# hostnamectl set-hostname c2
# su
# vi /etc/hosts
末行插入
192.168.100.10 ct
192.168.100.11 c1
192.168.100.12 c2
(3)關閉防火牆,核心防護,網絡管理
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vi /etc/selinux/config
改: SELINUX=disabled
# systemctl stop NetworkManager
# systemctl disable NetworkManager
二:本地YUM源部署
官網下載下傳openstack-R版的源碼包
3個節點都用 Xftp 上傳 包放到/opt目錄下,也可以用其他共享方式挂載到/opt下
1:【控制節點 ct 】配置
(1)解壓openstack源碼包
# cd /opt
# tar zxvf openstack_rocky.tar.gz -C /opt
# cd openstack_rocky
# pwd
/opt/openstack_rocky
(2)搭建yum本地源
# cd /etc/yum.repos.d
# mkdir backup 建立備份目錄
# mv C* backup 将目前目錄下,所有内容轉移
# vi local.repo
重新寫入
[openstack]
name=openstack
baseurl=file:///opt/openstack_rocky 指向源碼包位置
gpgcheck=0
enabled=1
(3)把搭建好的本地源傳到2個計算節點
# scp local.repo [email protected]:/etc/yum.repo.d
輸入yes
輸入密碼
# scp local.repo [email protected]:/etc/yum.repo.d
輸入yes
輸入密碼
(4)挂載鏡像,加入本地源,以防部署時缺包
# mount /dev/cdrom /mnt
# df -hT
# vi /etc/fstab 永久挂載
末行插入
/dev/cdrom /mnt iso9660 defaults 0 0
# mount -a 或 init 6
# cd /etc/yum.repos.d
# vi local.repo
末行插入
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1
(5)更新本地源
# yum clean all
# yum makecache
2:【計算節點 c1 】配置
(1)檢視本地源local.repo是否傳過來
# cd /etc/yum.repos.d
# mkdir backup 建立備份目錄
# mv C* backup 将目前目錄下,所有内容轉移
# ll
(2)挂載鏡像,加入本地源,以防部署時缺包
# mount /dev/cdrom /mnt
# df -hT
# vi /etc/fstab 永久挂載
末行插入
/dev/cdrom /mnt iso9660 defaults 0 0
# mount -a 或 init 6
# cd /etc/yum.repos.d
# vi local.repo
末行插入
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1
(3)更新本地源
# yum clean all
# yum makecache
(4)解壓openstack源碼包
# cd /opt
# tar zxvf openstack_rocky.tar.gz -C /opt
# cd openstack_rocky
# pwd
/opt/openstack_rocky
3:【計算節點 c2 】配置
(1)檢視本地源local.repo是否傳過來
# cd /etc/yum.repos.d
# mkdir backup 建立備份目錄
# mv C* backup 将目前目錄下,所有内容轉移
# ll
(2)挂載鏡像,加入本地源,以防部署時缺包
# mount /dev/cdrom /mnt
# df -hT
# vi /etc/fstab 永久挂載
末行插入
/dev/cdrom /mnt iso9660 defaults 0 0
# mount -a 或 init 6
# cd /etc/yum.repos.d
# vi local.repo
末行插入
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1
(3)更新本地源
# yum clean all
# yum makecache
(4)解壓openstack源碼包
# cd /opt
# tar zxvf openstack_rocky.tar.gz -C /opt
# cd openstack_rocky
# pwd
/opt/openstack_rocky
三:時間同步
1:【控制節點 ct 】配置
(1)安裝時間同步,同步阿裡雲
# yum -y install ntpdate ntp 安裝時間同步,時鐘服務
# ntpdate ntp.aliyun.com 同步阿裡雲
# ntpdate ntp.aliyun.com >>/var/log/ntpdate.log 産生日志檔案
設定周期計劃任務
# crontab -e
*/30 * * * * /usr/sbin/ntpdate ntp.aliyun.com >>/var/log/ntpdate.log
# systemctl restart crond
# systemctl enable crond
(2)配置時鐘服務(計算節點可以來同步)
# vi /etc/ntp.conf
restrict default nomodify 後的單詞删除 --第8行改
restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap
--第17行改為本機IP網段
将21行到24行删除
21 server 0.centos.pool.ntp.org iburst
22 server 1.centos.pool.ntp.org iburst
23 server 2.centos.pool.ntp.org iburst
24 server 3.centos.pool.ntp.org iburst
删除後插入下面2行
fudeg 127.127.100.0 stratum 10
server 127.127.100.0
(3)開啟ntp服務
# systemctl disable chronyd.service --NTP重新開機BUG--通過禁止chronyd服務開機自啟動之後再将系統重新開機
# systemctl restart ntpd --重新開機ntp服務端
# systemctl enable ntpd --開機啟動ntp服務端
2:【計算節點 c1 】配置
# yum -y install ntpdate 安裝時間同步
# ntpdate ct 或者 # ntpdate 192.168.100.10 時間同步控制節點
# ntpdate 192.168.100.10 >>/var/log/ntpdate.log
# crontab -e
*/30 * * * * /usr/sbin/ntpdate 192.168.100.10 >>/var/log/ntpdate.log
# systemctl restart crond
# systemctl enable crond
3:【計算節點 c2 】配置
# yum -y install ntpdate 安裝時間同步
# ntpdate ct 或者 # ntpdate 192.168.100.10 時間同步控制節點
# ntpdate 192.168.100.10 >>/var/log/ntpdate.log
# crontab -e
*/30 * * * * /usr/sbin/ntpdate 192.168.100.10 >>/var/log/ntpdate.log
# systemctl restart crond
# systemctl enable crond
四:免互動配置
3個節點生成密鑰, 并互相發送密鑰
1:【控制節點 ct 】配置
# ssh-keygen -t rsa --生成非對稱密鑰
一路預設Enter鍵
# ssh-copy-id ct --互動提示 輸入yes 然後輸入密碼 Abc123
# ssh-copy-id c1 --互動提示 輸入yes 然後輸入密碼 Abc123
# ssh-copy-id c2 --互動提示 輸入yes 然後輸入密碼 Abc123
# init 6 重新開機後
每個節點都檢查下 防火牆是否關閉
2:【計算節點 c1 】配置
# ssh-keygen -t rsa
一路預設Enter鍵
# ssh-copy-id ct --互動提示 輸入yes 然後輸入密碼 Abc123
# ssh-copy-id c1 --互動提示 輸入yes 然後輸入密碼 Abc123
# ssh-copy-id c2 --互動提示 輸入yes 然後輸入密碼 Abc123
每個節點都檢查下 防火牆是否關閉
# ntpdate ct 同步控制節點
3:【計算節點 c2 】配置
# ssh-keygen -t rsa
一路預設Enter鍵
# ssh-copy-id ct --互動提示 輸入yes 然後輸入密碼 Abc123
# ssh-copy-id c1 --互動提示 輸入yes 然後輸入密碼 Abc123
# ssh-copy-id c2 --互動提示 輸入yes 然後輸入密碼 Abc123
每個節點都檢查下 防火牆是否關閉
# ntpdate ct 同步控制節點
五:Openstack一鍵部署安裝
1:【控制節點 ct 】配置
(1)安裝環境,自動化部署工具
# yum -y install openstack-packstack 自動化部署工具
# packstack --gen-answer-file=openstack.txt 生成應答檔案
# ll 可以看到應答檔案openstack.txt
(2)配置應答檔案
# vi openstack.txt
下面有需要更改的地方:
--第19行 MARIADB資料庫預設要安裝 ,預設是Y,不改
CONFIG_MARIADB_INSTALL=y
--第22行 GLANCE鏡像組将必須要裝,預設是Y,不改
CONFIG_GLANCE_INSTALL=y
--第25行 CINDER元件塊存儲的,必須要裝,預設是Y,不改
CONFIG_CINDER_INSTALL=y
--第29行MANILA元件是openstack的擴充系統 ,預設N,不改
CONFIG_MANILA_INSTALL=n
--第32行NOVA元件是openstack計算元件,預設Y,不改
CONFIG_NOVA_INSTALL=y
--第35行NEUTRON是openstack的網絡元件,預設Y,不改
CONFIG_NEUTRON_INSTALL=y
--第38行HORIZON是OpenStack的Dashboard元件,預設Y,不改
38 CONFIG_HORIZON_INSTALL=y
●第41行SWIFT是OpenStack的對象存儲元件,預設是Y,在生産環境中一般是不裝,是以該n
CONFIG_SWIFT_INSTALL=n
--第46行CEILOMETER是OpenStack的計量元件 預設是Y,不改
CONFIG_CEILOMETER_INSTALL=y
●第50行,預設是Y 需要改n
CONFIG_AODH_INSTALL=n
--第53行, 預設是n 不改
CONFIG_PANKO_INSTALL=n
--第60行,HEAT是OpenStack是編排元件 ,預設是n ,不改
CONFIG_HEAT_INSTALL=n
--第94行CONTROLLER是OpenStack的控制節點,在控制節點上配置的,不需要更改IP位址。
CONFIG_CONTROLLER_HOST=192.168.100.10
●第97行需要更改計算節點的IP位址
CONFIG_COMPUTE_HOSTS=192.168.100.11,192.168.100.12
●第101行 需要更改網絡節點的IP位址
CONFIG_NETWORK_HOSTS=192.168.100.10
●第557行 系統在建立CINDER元件的的時候回建立一個20G卷,因為我們虛拟機空間有限是以把空間改下點1G,可改可不改
CONFIG_CINDER_VOLUMES_SIZE=20G
●第778行 ,像這樣的29948657b3aa409c是密碼,有後面有專門的腳本改,好記。密碼
CONFIG_NEUTRON_METADATA_PW=29948657b3aa409c
--●第782行 LBAAS負載均衡元件。必選要裝 選y。 預設n,這次實驗不改
CONFIG_LBAAS_INSTALL=n
--●第790行 FWAAS是防火牆元件。必選要裝 選y。預設n,這次實驗不改
CONFIG_NEUTRON_FWAAS=n
--●第794行 VPNAAS是VPN元件。必選要裝 選y。預設n,這次實驗不改
CONFIG_NEUTRON_VPNAAS=n
●第817行,FLAT網絡這邊要設定實體網卡名字
CONFIG_NEUTRON_ML2_FLAT_NETWORKS=physnet1
●第862行,這邊要設定實體網卡的名字
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex
●第873行,這邊br-ex:eth1是網絡節點的nat網卡
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth1
●第1185行 是OpenStack聯網下載下傳一個測試鏡像,這邊沒聯網。說以改成n
CONFIG_PROVISION_DEMO=n
需改的地方:
第41行:SWIFT是OpenStack的對象存儲元件,預設是Y,在生産環境中一般是不裝,是以該n
第97行:需要更改計算節點的IP位址
第817行:FLAT網絡這邊要設定實體網卡名字
第862行:這邊要設定實體網卡的名字
第873行:這邊br-ex:eth1是網絡節點的nat網卡
第1185行: 是OpenStack聯網下載下傳一個測試鏡像,這邊沒聯網。說以改成n
(3)改控制節點和網絡節點位址,改密碼
(也可以直接在配置檔案裡改,94行、 101行、 778行)
# sed -i -r 's/192.168.188.188/192.168.100.10/g' openstack.txt
# sed -i -r 's/(.+_PW)=.+/\1=Abc123/' openstack.txt
# grep -vE "^#|^$" openstack.txt >openstackbak.txt
(4)把内網ens36的網關添加上
# vi /etc/sysconfig/network-scripts/ifcfg-ens36
添加網關
# systemctl restart network
(5)openstack 自動部署安裝
前面配置了時間同步,在控制節點敲自動部署,3台節點會同步安裝
# packstack --answer-file=openstack.txt 自動安裝部署
(6)另開一個視窗
# tail -f /var/log/messages 動态檢視部署情況
2:【計算節點 c1 】配置
# tail -f /var/log/messages 動态檢視部署情況
3:【計算節點 c2 】配置
# tail -f /var/log/messages 動态檢視部署情況
六:Openstack登入測試
1:【控制節點 ct 】配置
安裝完成後
# cat keystonerc_admin 檢視使用者密碼
Openstack登入測試
浏覽器輸入 http://192.168.100.10/dashboard 或 http://192.168.100.10
賬号:admin
密碼:Abc123
頁面登入測試成功
# source /root/keystonerc_admin
# neutron agent-list 檢視網絡節點狀态
所有agent 如箭頭所指的 笑臉形狀 就表示網絡服務正常。