一、實驗環境
-
① 控制節點 命名爲ct
CPU:雙核雙線程–CPU虛擬化開啓
內存:8G 硬盤:300G+2048G(充當CEPH塊存儲)
網卡:VM1-192.168.100.10 NAT-192.168.226.100(靜態)
- 注意,要在安裝centos時,選擇安裝,然後按Tab鍵,輸入 net.ifnames=0 biosdevname=0將網卡改爲eth模式
操作系統 centos7(1810) --最小化安裝
-
② 計算節點 (網絡模塊)命名爲c1
CPU:雙核雙線程–CPU虛擬化開啓
內存:8G 硬盤:300G+2048G(充當CEPH塊存儲)
網卡:VM1-192.168.100.11
操作系統 centos7(1810) --最小化安裝
-
③ 計算節點2(網絡模塊)命名爲c2
CPU:雙核雙線程–CPU虛擬化開啓
內存:8G 硬盤:300G+2048G(充當CEPH塊存儲)
網卡:VM1-192.168.100.12
操作系統 centos7(1810) --最小化安裝
-
配置要求
控制節點:最小內存6G
計算節點、網絡節點:最小內存6G
NAT 充當外部浮動IP地址,遠程可以訪問內部主機
鏡像文件下載處:
https://mirrors.aliyun.com/centos/7.7.1908/isos/x86_64/CentOS-7-x86_64-DVD-1908.iso
#到阿里雲下載鏡像1908操作系統
二、實驗配置思路
-
所有節點:
-
① 安裝操作系統,設置好磁盤
-
② 規劃網絡,配置網卡和IP地址
-
③ 配置本地YUM源倉庫(控制節點配置完成後可以直接推送給計算節點
-
④ 關閉防火牆(firewalld、iptables) 設爲開機不自啓
-
⑤ 關閉網絡管理,設爲開機不自啓
-
⑥ 配置地址映射
-
⑦ 配置免交互 (rst)
-
⑧ 配置時間同步
-
以下只在控制節點配置
-
① 部署OpenStack一鍵安裝工具
-
② 修改應答文件
-
③ 一鍵部署
-
④ 登錄web頁面測試
三、實驗步驟
3.1 硬件規劃
3.2 網絡配置
- eth0(VMnet1網卡設置)
[root@ct ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=a2bdfd6d-4e2a-40eb-a5c2-26662ce7e727
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
#GATEWAY=192.168.100.1
#先註釋網關,不然之後配置NAT後無法連通外部網絡
- eth1(NAT網卡設置)
[root@ct ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1
UUID=b9a62994-c748-49a6-881a-8fe8dfefcc43
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.226.100
NETMASK=255.255.255.0
GATEWAY=192.168.226.2
- 加入端口映射、重啓網卡,嘗試ping 百度
[root@ct ~]# vi /etc/resolv.conf
nameserver 8.8.8.8
[root@ct ~]# systemctl restart network
[root@ct ~]# ping www.baidu.com
PING www.wshifen.com (104.193.88.77) 56(84) bytes of data.
64 bytes from 104.193.88.77 (104.193.88.77): icmp_seq=4 ttl=128 time=149 ms
64 bytes from 104.193.88.77 (104.193.88.77): icmp_seq=5 ttl=128 time=147 ms
64 bytes from 104.193.88.77 (104.193.88.77): icmp_seq=6 ttl=128 time=145 ms
- C1與C2 只要修改VMnet1網卡,與ct節點的VMnet1在同一網段即可
- PS:查看網卡信息命令爲:ip addr ,也可以下載ifconfig軟件包來使用ifconfig查看網卡
3.3 環境優化
-
使用OpenStack本地yum源搭建yum倉庫
① 掛載鏡像ISO
[root@ct ~]# vi /etc/fstab
/dev/cdrom /mnt iso9660 defaults 0 0
#添加以上內容
------》wq
#刷新生效
[root@ct ~]# mount -a
[root@ct ~]# df -hT
/dev/sr0 iso9660 4.2G 4.2G 0 100% /mnt
#鏡像已掛載成功
- ② 上傳openstck文件包,搭建yum倉庫
使用finalshell遠程連接直接把openstack_rocky.tar.gz上傳到/opt目錄即可
[root@ct ~]# cd /opt
[root@ct opt]# tar zxvf openstack_rocky.tar.gz
......省略部分內容
[root@ct opt]# cd /etc/yum.repos.d
[root@ct yum.repos.d]# mkdir backup
[root@ct yum.repos.d]# mv Cen* backup
[root@ct yum.repos.d]# vi local.repo
#以下爲openstack源
[openstack]
name=openstack
baseurl=file:///opt/openstack_rocky
gpgcheck=0
enabled=1
#以下爲本地鏡像
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1
-----》wq
[root@ct yum.repos.d]# yum clean all
[root@ct yum.repos.d]# yum makecache
#先清除緩存,再創建緩存
- 關閉防火牆、核心防護與網絡管理,同時設置爲開啓不自啓
[root@ct yum.repos.d]# systemctl stop firewalld
[root@ct yum.repos.d]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@ct yum.repos.d]# setenforce 0
[root@ct yum.repos.d]# vi /etc/sysconfig/selinux
SELINUX=disabled
[root@ct yum.repos.d]# systemctl stop NetworkManager
[root@ct yum.repos.d]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
-
配置本地主機映射(所有節點服務都需要配置)
此處只展示ct節點
[root@ct yum.repos.d]# vi /etc/hosts
192.168.100.10 ct
192.168.100.11 c1
192.168.100.12 c2
----->wq
- 配置ct 控制節點的時鐘服務,同時配置c1 c2節點時間同步
#安裝ntp、ntpdate 服務,C1 C2節點只需要安裝ntpdate服務即可
[root@ct yum.repos.d]# yum install ntp ntpdate -y
.....省略部分內容
#ct節點同步阿里雲時間服務器,c1 c2 直接同步ct服務器即可
[root@ct yum.repos.d]# ntpdate ntp.aliyun.com
#創建計劃性任務,週期性進行時間同步
[root@ct yum.repos.d]# crotab -e
*/30 * * * * /usr/sbin/ntpdate ntp.aliyun.com >>/var/log/ntpdate.log
#實驗中 同步的時間可以稍微調整長一點,以免產生過多日誌文件
#c1 c2節點服務器同理創建週期性計劃任務,如下
*/30 * * * * /usr/sbin/ntpdate ct >>/var/log/ntpdate.log
- 修改ct 控制節點ntp主配置文件
[root@ct yum.repos.d]# vim /etc/ntp.conf
#第8行修改
restrict default nomodify
#第17行將default 修改爲100網段
restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap
#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
#25-26添加以下內容
fudeg 127.127.1.0 stratum 10
server 127.127.1.0
-----》wq
-
開始crond服務、ntp服務
ct 控制節點開啓以下服務
[root@ct yum.repos.d]# systemctl restart crond
[root@ct yum.repos.d]# systemctl enable crond
[root@ct yum.repos.d]# systemctl restart ntpd
[root@ct yum.repos.d]# systemctl enable ntpd
[root@ct yum.repos.d]# systemctl disable chronyd.service
#chronyd 此時間同步服務需要關閉開機自啓動,否則ntp服務開機自啓動無效
- 兩個計算節點僅需開啓以下服務
[root@ct yum.repos.d]# systemctl restart crond
[root@ct yum.repos.d]# systemctl enable crond
- 免交互配置(所有節點)
[root@ct yum.repos.d]# ssh-keygen -t rsa
#生成密鑰隊步驟全部按回車即可
[root@ct yum.repos.d]# ssh-copy-id ct
#需要先確定,輸入yes ,然後輸入推送目標服務器的密碼即可
[root@ct yum.repos.d]# ssh-copy-id c1
[root@ct yum.repos.d]# ssh-copy-id c2
- 重啓,檢查配置是否生效
[root@ct yum.repos.d]# reboot
3.4 ct 控制節點部署OpenStack
3.4.1 安裝一鍵部署工具
#安裝一鍵部署工具
[root@ct ~]# yum install openstack-packstack
.......省略部分內容
#生成應答文件
[root@ct ~]# packstack --gen-answer-file=openstack.txt
- 在ct 控制節點修改應答文件、同時一鍵部署openstack
[root@ct ~]# vi openstack.txt
#第41行SWIFT是OpenStack的對象存儲組件,默認是Y,在生產環境中一般是不裝,所以改n
CONFIG_SWIFT_INSTALL=n
#第50行,默認是Y 需要改n
CONFIG_AODH_INSTALL=n
#第97行需要更改計算節點的IP地址'
CONFIG_COMPUTE_HOSTS=192.168.100.11,192.168.100.12
#第101行 需要更改網絡節點的IP地址
CONFIG_NETWORK_HOSTS=192.168.100.10
#第782行LBAAS負載均衡組件。必選要裝 選y
CONFIG_LBAAS_INSTALL=y
#第790行 FWAAS是防火牆組件。必選要裝 選y
CONFIG_NEUTRON_FWAAS=y
#第794行 VPNAAS是VPN組件。必選要裝 選y
CONFIG_NEUTRON_VPNAAS=y
#第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
- 修改openstack賬號密碼
[root@ct ~]# sed -i -r 's/(.+_PW)=.+/\1=123123/' openstack.tx
- 修改應答文件中所有控制節點IP
[root@ct ~]# sed -i -r 's/192.168.233.100/192.168.100.10/g' openstack.txt
- 備份應答文件
[root@ct ~]# grep -vE "^#|^$" openstack.txt >openstackbak.txt
-
一鍵部署安裝openstack
時間較長,我們可以同時查看後臺日誌文件 :tail -f /var/log/messages
[root@ct ~]# packstack --answer-file=openstack.txt
#等待時間較長
**** Installation completed successfully ******
#看到此處顯示,安裝成功
- 查看賬戶名和密碼
[root@ct ~]# cat keystonerc_admin
[root@ct ~]# cat keystonerc_admin
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin #用戶名
export OS_PASSWORD='123123' #密碼
export OS_AUTH_URL=http://192.168.11.100:5000/v3
export PS1='[\u@\h \W(keystone_admin)]\$ '
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
3.5 登錄web頁面測試
- 輸入192.168.100.10 進入openstack 頁面