1 案例1:配置yum倉庫
1.1 問題
本案例要求配置基本環境:
配置三臺虛擬機
2CPU,6G 內存,50G 硬盤
2CPU,4.5G 內存,100G 硬盤
配置靜態IP ifcfg-eth0
openstack : 192.168.1.10
nova: 192.168.1.11, 192.168.1.12
配置主機名 /etc/hosts,能夠相互 ping 通
配置 dns 服務器 /etc/resolv.conf
1.2 方案
此實驗的整體方案需要三臺機器,openstack作為主節點,nova01 和 nova02作為額外節點,真機做為DNS轉發和NTP的服務器(這里不再在表-1中體現),提供域名解析和時間同步服務,具體情況如表-1所示:
表-1
1.3 步驟
實現此案例需要按照如下步驟進行。
步驟一:準備三臺虛擬機
[student@room9pc01 images]$base-vm openstack nova01 nova02
[student@room9pc01 images]$virsh start openstack
[student@room9pc01 images]$virsh start nova01
[student@room9pc01 images]$virsh start nova02
2)opensatck主機擴容為50G
[student@room9pc01 images]$ virsh blockresize--path /var/lib/libvirt/images/openstack.img--size 100G openstack
[student@room9pc01 images]$ virsh console openstack
[root@localhost~]#/usr/bin/growpart /dev/vda1
[root@localhost~]#/usr/sbin/xfs_growfs /
[root@localhost~]# df-h
Filesystem? ? ? Size? Used Avail Use%Mounted on
/dev/vda1? ? ? ? 50G? 914M? 50G2%/
3)nova01 和 nova02 主機擴容為100G(以nova01為例)
[student@room9pc01 images]$ virsh blockresize--path /var/lib/libvirt/images/nova01.img--size 50G nova01
重新定義'/var/lib/libvirt/images/nova01.img'塊設備大小
[root@localhost~]#/usr/bin/growpart /dev/vda1
[root@localhost~]#/usr/sbin/xfs_growfs? /
[root@localhost~]# df-h
Filesystem? ? ? Size? Used Avail Use%Mounted on
/dev/vda1? ? ? 100G? 917M? 100G1%/
4)三臺主機配置靜態ip(以一臺為例)
openstack:192.168.1.10
nova01: 192.168.1.11
nova02: 192.168.1.12
[root@localhost~]#cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
PERSISTENT_DHCLIENT="yes"
IPADDR=192.168.1.10
NEMASK=255.255.255.0
GATEWAY=192.168.1.254
5)三臺主機修改主機名,配置/etc/hosts,和/etc/resolv.conf文件(以一臺為例)
[root@localhost~]# hostname openstack
[root@localhost~]# echo openstack>/etc/hostname
[root@localhost~]#vim /etc/hosts
192.168.1.10openstack
192.168.1.11nova01
192.168.1.12nova02
[root@localhost~]#vim /etc/resolv.conf//去掉search開頭的行
;generatedby /usr/sbin/dhclient-script
nameserver192.168.1.254
6)修改三臺主機的內存(openstack6G,nova01 和nova02 4G)
[student@room9pc01~]$ virsh edit openstack
...
<memory unit='KiB'>6588282</memory>
<currentMemory unit='KiB'>6588282</currentMemory>
...
[student@room9pc01~]$ virsh edit nova01
...
<memory unit='KiB'>4588282</memory>
<currentMemory unit='KiB'>4588282</currentMemory>
...
[student@room9pc01~]$ virsh start? openstack
域 openstack 已開始
[student@room9pc01~]$ virsh start? nova01
域 nova01 已開始
[student@room9pc01~]$ virsh start? nova02
域 nova02 已開始
2 案例2:測試時間服務器
2.1 問題
本案例要求掌握時間服務的配置:
修改 openstack,nova01,nova02 的時間服務器
重啟服務后驗證配置
2.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:修改openstack,nova01 和 nova02 的時間服務器(以一臺為例)
[root@openstack~]#vim /etc/chrony.conf
...
server192.168.1.254iburst
[root@openstack~]# systemctl restart chronyd
步驟二:驗證
[root@openstack~]# chronyc sources-v
...
||||\
MSName/IP address? ? ? ? Stratum Poll Reach LastRx Last sample
===============================================================================
^*gateway36376-93ns[+903ns]+/-26ms
步驟三:兩臺虛擬機配置靜態ip
注意:兩臺主機同樣操作,改一下ip即可(以openstack.tedu.cn為例)
[root@localhost~]# echo openstack.tedu.cn>/etc/hostname
[root@localhost~]# hostname openstack.tedu.cn
//另外一臺主機改名為nova.tedu.cn,配置ip為1.20
[root@openstack~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.1.10"
PREFIX=24
GATEWAY=192.168.1.254
[root@openstack~]# systemctl restart network
3 案例3:配置yum倉庫
3.1 問題
本案例要求配置yum倉庫:
配置 yum 源,軟件倉庫一共 4 個
3.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:三臺主機配置yum源(以一臺主機為例,共10670個軟件包)
[student@room9pc01~]$cd /linux-soft/04/openstack/
[student@room9pc01 openstack]$ ls
cirros.qcow2? RHEL7-extras.iso? RHEL7OSP-10.iso? small.qcow2
[student@room9pc01 openstack]$mkdir /var/ftp/RHEL7-extras
[student@room9pc01 openstack]$mkdir /var/ftp/RHEL7OSP-10
[student@room9pc01 openstack]$ mount RHEL7-extras.iso? /var/ftp/RHEL7-extras/
mount:/dev/loop1 寫保護,將以只讀方式掛載
[student@room9pc01 openstack]$ mount RHEL7OSP-10.iso /var/ftp/RHEL7OSP-10/
mount:/dev/loop2 寫保護,將以只讀方式掛載
[root@openstack~]#vim /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever-Base
baseurl="ftp://192.168.1.254/centos-1804"
enabled=1
gpgcheck=1
[RHEL7-extras]
name=RHEL7-extras
baseurl="ftp://192.168.1.254/RHEL7-extras"
enabled=1
gpgcheck=0
[RHEL7OSP-package]
name=RHEL7OSP-package
baseurl="ftp://192.168.1.254/RHEL7OSP-10/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[RHEL7OSP-devtools]
name=RHEL7OSP-devtools
baseurl="ftp://192.168.1.254/RHEL7OSP-10/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
[root@openstack~]#scp /etc/yum.repos.d/local.repo192.168.1.11:/etc/yum.repos.d/
root@192.168.1.11's password:
local.repo? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%? 490? 484.4KB/s? 00:00? ?
[root@openstack ~]# scp /etc/yum.repos.d/local.repo 192.168.1.12:/etc/yum.repos.d/
root@192.168.1.12's password:
local.repo
4 案例4:檢查基礎環境
4.1 問題
本案例要求準備基礎環境,為安裝openstack做準備:
安裝額外的軟件包
是否卸載firewalld 和 NetworkManager
檢查配置主機網絡參數(靜態IP)
主機名必須能夠相互 ping 通
檢查配置主機yum源(4個,10670)
依賴軟件包是否安裝
檢查NTP服務器是否可用
檢查 /etc/resolv.conf 不能有 search 開頭的行
4.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:檢查基礎環境
1)安裝額外軟件包(三臺機器操作,這里以一臺為例)
[root@openstack yum.repos.d]# yum install-y qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools
2)是否卸載firewalld 和 NetworkManager
[root@openstack~]# rpm-qa|grep NetworkManager*
[root@openstack~]# rpm-qa|grep firewalld*
3)檢查配置主機網絡參數
[root@openstack~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
PERSISTENT_DHCLIENT="yes"
IPADDR=192.168.1.10
NEMASK=255.255.255.0
GATEWAY=192.168.1.254
4)驗證主機名是否互通
[root@openstack~]# ping openstack
...
64bytes fromopenstack(192.168.1.10):icmp_seq=1ttl=255time=0.023ms
64bytes fromopenstack(192.168.1.10):icmp_seq=2ttl=255time=0.027ms
...
[root@openstack~]# ping nova01
PINGnova01(192.168.1.11)56(84)bytes of data.
64bytes fromnova01(192.168.1.11):icmp_seq=1ttl=255time=0.139ms
...
[root@openstack~]# ping nova02
PINGnova02(192.168.1.12)56(84)bytes of data.
64bytes fromnova02(192.168.1.12):icmp_seq=1ttl=255time=0.251ms
...
5)檢查配置主機yum源
[root@openstack~]# yum repolist
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
源標識? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 源名稱? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 狀態
RHEL7-extras? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RHEL7-extras76
RHEL7OSP-devtools? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RHEL7OSP-devtools3
RHEL7OSP-package? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? RHEL7OSP-package680
local_repo? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CentOS-7-Base9,911
repolist:10,670
6)檢查時間同步是否可用
[root@openstack~]# chronyc? sources-v
210Numberof sources=1
....
||||\
MSName/IP address? ? ? ? Stratum Poll Reach LastRx Last sample
===============================================================================
^*gateway3737728+31us[+89us]+/-25ms
[root@openstack~]#
7)檢查/etc/resolv.conf 不能有 search 開頭的行
[root@openstack~]#cat /etc/resolv.conf
;generatedby /usr/sbin/dhclient-script
nameserver192.168.1.254
5 案例5:部署Openstack
5.1 問題
本案例要求通過packstack完成以下配置:
通過packstack部署Openstack
根據相關日志文件進行排錯
5.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:安裝packstack
[root@openstack~]# yum install-y openstack-packstack
[root@openstack~]# packstack--gen-answer-file answer.ini
//answer.ini與answer.txt是一樣的,只是用vim打開answer.ini文件有顏色
Packstack changed given value? to requiredvalue /root/.ssh/id_rsa.pub
[root@openstack~]# vim answer.ini
42CONFIG_SWIFT_INSTALL=n
45CONFIG_CEILOMETER_INSTALL=n//計費相關模塊
49CONFIG_AODH_INSTALL=n//計費相關模塊
53CONFIG_GNOCCHI_INSTALL=n//計費相關模塊
75CONFIG_NTP_SERVERS=192.168.1.254//時間服務器的地址
98CONFIG_COMPUTE_HOSTS=192.168.1.11
102CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11
333CONFIG_KEYSTONE_ADMIN_PW=a//修改管理員的密碼
840CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan//驅動類型
876CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5
//設置組播地址,最后一個隨意不能為0和255,其他固定
910CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex//物理網橋的名稱
921CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0
//br-ex橋的名稱與eth0連接,管理eth0,網橋與哪個物理網卡連接
1179CONFIG_PROVISION_DEMO=n//DEMO是否測試
[root@openstack~]# packstack--answer-file=answer.ini
Welcome to the Packstack setup utility
The installation log file is available at:/var/tmp/packstack/20190423-170603-b43g_i/openstack-setup.log
Installing:
Clean Up[DONE]
Discovering ip protocol version[DONE]
root@192.168.1.11's password:
root@192.168.1.10's password:
Setting up ssh keys
****Installation completed successfully******//出現這個為成功
6 案例6:網絡管理
6.1 問題
本案例要求運用OVS完成以下配置:
查看外部OVS網橋及其端口
驗證OVS配置
6.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:查看外部OVS網橋
1)查看br-ex網橋配置(br-ex為OVS網橋設備)
[root@openstack~]#cat /etc/sysconfig/network-scripts/ifcfg-br-ex
ONBOOT="yes"
NM_CONTROLLED="no"
IPADDR="192.168.1.10"
PREFIX=24
GATEWAY=192.168.1.254
DEVICE=br-ex
NAME=br-ex
DEVICETYPE=ovs
OVSBOOTPROTO="static"
TYPE=OVSBridge
2)查看eth0網卡配置(該網卡為OVS網橋的接口)
[root@openstack~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BOOTPROTO=none
3)驗證OVS配置
[root@openstack~]# ovs-vsctl show
Bridge br-ex
Controller"tcp:127.0.0.1:6633"
is_connected:true
fail_mode:secure
Port br-ex
Interface br-ex
type:internal
Port phy-br-ex
Interface phy-br-ex
type:patch
options:{peer=int-br-ex}
Port"eth0"
Interface"eth0"
ovs_version:"2.5.0"
7 案例7:登錄openstack
7.1 問題
本案例要求通過Horizon完成以下操作:
修改/etc/httpd/conf.d/15-horizon_vhost.conf 配置文件,使其可以成功登錄openstack
7.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:瀏覽器訪問openstack
1)瀏覽器訪問
[root@openstack~]# firefox192.168.1.10//訪問失敗
2)需要改配置文件并重新加載
[root@openstack~]#
[root@openstack conf.d]# vi15-horizon_vhost.conf
35WSGIProcessGroup apache
36WSGIApplicationGroup%{GLOBAL}//添加這一行
[root@openstack conf.d]# apachectl? graceful//重新載入配置文件
3)瀏覽器訪問,出現頁面,如圖-6所示:
圖-6
3)查看用戶名和密碼
[root@openstack conf.d]# cd
[root@openstack~]# ls
answer.ini? keystonerc_admin//keystonerc_admin生成的文件,里面有用戶名和密碼
[root@openstack~]# cat keystonerc_admin
unset OS_SERVICE_TOKEN
exportOS_USERNAME=admin//用戶名
exportOS_PASSWORD=a//密碼
exportOS_AUTH_URL=http://192.168.1.10:5000/v2.0
exportPS1='[\u@\h \W(keystone_admin)]\$ '
exportOS_TENANT_NAME=admin
exportOS_REGION_NAME=RegionOne
4)在火狐瀏覽器中輸入用戶名和密碼,登錄后頁面如圖-7所示:
圖-7
安裝openstack可能會出現的錯誤以及排錯方法
1)ntp時間不同步,如圖-2所示:
圖-2
解決辦法:查看ntp時間服務器,是否出現*號,若沒有,查看配置文件,配置ntp服務器步驟在案例3,可以參考
[root@room9pc01~]# chronyc sources-v//出現*號代表NTP時間可用
^*120.25.115.20261762-753us[-7003us]+/-24ms
[root@openstack~]# chronyc sources-v
^*192.168.1.25439377504+50us[-20us]+/-24ms
[root@nova~]# chronyc sources-v
^*192.168.1.25439377159-202us[-226us]+/-24ms
2)網橋名稱寫錯,如圖-3所示:
圖-3
解決辦法:檢查配置文件
[root@openstack~]# vim answer.ini
...
921CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0
//br-ex橋的名稱與eth0連接,管理eth0,網橋與哪個物理網卡連接
...
3)若/root/.ssh/id_rsa.pub,提示password,同樣是配置文件沒有寫對,如圖-4所示:
圖-4
4)yum源沒有配置正確,如圖-5所示:
圖-5
解決辦法:檢查yum是否為10853個軟件包,查看是否是yum源沒有配置正確,之后安裝oprnstack-dashboard
5)出現Cannot allocate memory,如圖-6所示:
圖-6
解決辦法:
內存不足,重新啟動主機
6)出現/usr/bin/systemctl start openvswith ... falied,說明是ssse3指令集的錯誤,如圖-7所示:
圖-7
解決辦法:編輯openstack的xml文件,在里面添加
<cpu mode='host-passthrough'>
</cpu>
7)若出現 Could not prefetch... ‘openstack’。 如圖-8所示:
圖-8
配置文件里面有中文符號
9)訪問openstack出錯
圖-9
沒有修改Apache配置文件
4)創建名為myproject的項目
[root@openstack~]# source~/keystonerc_admin? //初始化環境變量
[root@openstack~(keystone_admin)]# openstack project create myproject
+-------------+----------------------------------+
|Field|Value|
+-------------+----------------------------------+
|description|None|
|enabled|True|
|id|f73949e2701346328faf5c1272414cd0|
|name|myproject|
+-------------+----------------------------------+
5)查看項目信息
[root@openstack~(keystone_admin)]# openstack project list
+----------------------------------+-----------+
|ID|Name|
+----------------------------------+-----------+
|3fd5bffd734543d39cf742492273a47f|services|
|7f0b43274a9f4e149357fc8393ff2c68|admin|
|f73949e2701346328faf5c1272414cd0|myproject|
+----------------------------------+-----------+
6)更新vcpu配額為30
[root@openstack~(keystone_admin)]# nova quota-update--cores30myproject
7)刪除myproject
[root@openstack~(keystone_admin)]# openstack projectdeletemyproject