Hello!大家好,今天阿坤爲大家帶來8G內存的雲平臺搭建,按照官方的標準是需要32G,最少也是16G內存的,但是阿坤覺的還不是極限,所以今天帶大家挑戰8G內存搭建最小云平臺!
環境準備
1.總共需要三臺虛擬機配置如下:
openstack主機配置:
2個CPU,6G內存(空閒內存),50G硬盤
nova1主機配置:
2個CPU,3.9G內存(空閒內存),100G硬盤
nova2主機配置:
2個CPU,3.9G內存(空閒內存),100G硬盤
2.配置靜態IP:
openstack:192.168.1.20
nova1:192.168.1.21
nova2:192.168.1.22
3.配置主機名/etc/hosts
4.確保互相ping通
5.配置dns服務器/etc/resolv.conf
6.配置時間同步/etc/chrony.conf
7.配置專用Yum源
8.裝包並安裝openstack
具體步驟
所有操作以openstack主機操作爲例
1.創建虛擬機
[root@room9pc01 ~]# sh vc.sh //這個是自己寫的創建虛擬機覺本
vm-manager> vmcreate
請輸入虛擬機名字: openstack8
請輸入虛擬機大小: 50G
Formatting '/var/lib/libvirt/images/openstack8.img', fmt=qcow2 size=53687091200 backing_file='.node_base.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
定義域 openstack8(從 /etc/libvirt/qemu/openstack8.xml)
vm-manager> vmcreate
請輸入虛擬機名字: nova1
請輸入虛擬機大小: 100G
Formatting '/var/lib/libvirt/images/nova1.img', fmt=qcow2 size=107374182400 backing_file='.node_base.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
定義域 nova1(從 /etc/libvirt/qemu/nova1.xml)
vm-manager> vmcreate
請輸入虛擬機名字: nova2
請輸入虛擬機大小: 100G
Formatting '/var/lib/libvirt/images/nova2.img', fmt=qcow2 size=107374182400 backing_file='.node_base.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
定義域 nova2(從 /etc/libvirt/qemu/nova2.xml)
vm-manager> quit
[root@room9pc01 ~]# vim /etc/libvirt/qemu/openstack8.xml
...
<memory unit='KiB'>8188928</memory> //大小設置成8G就可以
<currentMemory unit='KiB'>8188284</currentMemory> //虛擬內存一般都和真實內存相同(切記不可大於真實內存設置)
...
[root@room9pc01 ~]# vim /etc/libvirt/qemu/nova1.xml //nova2和nova1內存設置一樣
...
<memory unit='KiB'>4698112</memory> //4.5G即可
<currentMemory unit='KiB'>4697088</currentMemory>
...
2.配置IP就不帶着大家浪費時間啦
3.配置主機名/etc/hosts
[root@openstack8 ~]# vim /etc/hosts //nova1,nova2進行一樣操作,或者直接scp
# ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.20 openstack8 //主機名+IP
192.168.1.21 nova1
192.168.1.22 nova2
:wq //保存退出
4.確保互相ping通
[root@openstack8 ~]# ping -c 2 nova1
PING nova1 (192.168.1.21) 56(84) bytes of data.
64 bytes from nova1 (192.168.1.21): icmp_seq=1 ttl=255 time=0.513 ms
64 bytes from nova1 (192.168.1.21): icmp_seq=2 ttl=255 time=0.636 ms
--- nova1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.513/0.574/0.636/0.066 ms
[root@openstack8 ~]# ping -c 2 nova2
PING nova2 (192.168.1.22) 56(84) bytes of data.
64 bytes from nova2 (192.168.1.22): icmp_seq=1 ttl=255 time=2.02 ms
64 bytes from nova2 (192.168.1.22): icmp_seq=2 ttl=255 time=0.608 ms
--- nova2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.608/1.315/2.023/0.708 ms
[root@openstack8 ~]# ping -c 2 openstack8
PING openstack8 (192.168.1.20) 56(84) bytes of data.
64 bytes from openstack8 (192.168.1.20): icmp_seq=1 ttl=255 time=0.147 ms
64 bytes from openstack8 (192.168.1.20): icmp_seq=2 ttl=255 time=0.095 ms
--- openstack8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.095/0.121/0.147/0.026 ms
[root@openstack8 ~]#
5.配置dns服務器/etc/resolv.conf
[root@openstack8 ~]# vim /etc/resolv.conf //nova1,nova2進行一樣操作,或者直接scp
; generated by /usr/sbin/dhclient-script
#search localhost //必須註釋掉或者刪掉,否則安裝後會導致某些功能報錯
nameserver 192.168.1.254
:wq //保存退出
6.配置時間同步/etc/chrony.conf
[root@openstack8 ~]# vim /etc/chrony.conf //nova1,nova2進行一樣操作,或直接scp
...
server 192.168.1.254 iburst //修改成真機ip保持時間一致
...
:wq //保存退出
[root@openstack8 ~]# systemctl restart chronyd //改完配置文件必須重啓服務,三臺都做
[root@openstack8 ~]# chkconfig chronyd on //並設置開機自啓(個人習慣6、7混合用),三臺都做
注意:正在將請求轉發到“systemctl enable chronyd.service”。
[root@openstack8 ~]# chronyc sources -v //三臺機器都執行一遍用來檢查時間是否同步成功
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* gateway 3 6 377 58 +108us[ +153us] +/- 15ms
// 如果gateway前面符號爲^*說明同步OJBK,若爲^~則同步NOJBK
7.配置專用Yum源
1)真機上操作
從網上下載好所需要用的包,這裏我吧它分成了兩個目錄分別是,extras和opentsack目錄,並搭建ftp服務器使虛擬機可以掛載yum源,實際上我們用到的主要是extras源以及rhel-7-server-openstack-10-rpms源和rhel-7-server-openstack-10-devtools-rpms源.
[root@room9pc01 ~]# ls /var/ftp/{extras,openstack}/
/var/ftp/extras/:
comps.xml Packages repodata version.txt
/var/ftp/openstack/:
docs rhel-7-server-rhceph-2-osd-rpms
rhel-7-server-openstack-10-devtools-rpms rhel-7-server-rhceph-2-tools-rpms
rhel-7-server-openstack-10-optools-rpms rhel-7-server-rhscon-2-agent-rpms
rhel-7-server-openstack-10-rpms rhel-7-server-rhscon-2-installer-rpms
rhel-7-server-openstack-10-tools-rpms rhel-7-server-rhscon-2-main-rpms
rhel-7-server-rhceph-2-mon-rpms version.txt
2)openstack服務器操作
[root@openstack8 ~]# vim /etc/yum.repos.d/local.repo //三臺都配置,或者直接scp
[local_repo] //本地正常源
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/centos-1804"
enabled=1
gpgcheck=0
[extras] //以下三個都是openstack需要用的三個源
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/extras"
enabled=1
gpgcheck=0
[openstack1]
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-rpms"
enabled=1
gpgcheck=0
[openstack2]
name=CentOS-$releasever - Base
baseurl="ftp://192.168.1.254/openstack/rhel-7-server-openstack-10-devtools-rpms"
enabled=1
gpgcheck=0
:wq //保存退出
[root@openstack8 ~]# for i in openstack8 nova1 nova2
> do
> scp /etc/yum.repos.d/local.repo $i:/etc/yum.repos.d/
> done
local.repo 100% 488 324.7KB/s 00:00
local.repo 100% 488 192.2KB/s 00:00
local.repo 100% 488 313.0KB/s 00:00
[root@openstack8 ~]# for i in openstack8 nova1 nova2 //檢查三臺機器源是否成功加載
> do
> ssh $i 'yum repolist'
> done
已加載插件:fastestmirror
Determining fastest mirrors
源標識 源名稱 狀態
extras CentOS-7 - Base 76
local_repo CentOS-7 - Base 9,911
openstack1 CentOS-7 - Base 680
openstack2 CentOS-7 - Base 3
repolist: 10,670 //都顯示10670個包yum源就搭建完畢啦
已加載插件:fastestmirror
Determining fastest mirrors
源標識 源名稱 狀態
extras CentOS-7 - Base 76
local_repo CentOS-7 - Base 9,911
openstack1 CentOS-7 - Base 680
openstack2 CentOS-7 - Base 3
repolist: 10,670
已加載插件:fastestmirror
Determining fastest mirrors
源標識 源名稱 狀態
extras CentOS-7 - Base 76
local_repo CentOS-7 - Base 9,911
openstack1 CentOS-7 - Base 680
openstack2 CentOS-7 - Base 3
repolist: 10,670
8.裝包並安裝openstack
1)裝包
nova1,nova2服務器
[root@nova1 ~]# yum -y install qemu-kvm libvirtdaemon libvirt-daemon-driver-qemu libvirt-client //nova2做相同操作,總計87個包
...
openstack服務器
[root@openstack8 ~]# yum -y install qemu-kvm libvirtdaemon libvirt-daemon-driver-qemu libvirt-client python-setuptools //openstack服務器上裝五個包,總計91個
....
2)安裝openstack
[root@openstack8 ~]# yum install -y openstack-packstack //安裝openstack包,總計77個包
...
[root@openstack8 ~]# packstack --gen-answer-file=answer.ini //創建通用應答文件
[root@openstack8 ~]# vim answer.ini
...
42 CONFIG_SWIFT_INSTALL=n //swift對象存儲的安裝,因爲沒有,所以使用本地硬盤
45 CONFIG_CEILOMETER_INSTALL=n //計費模塊
49 CONFIG_AODH_INSTALL=n //計費模塊
53 CONFIG_GNOCCHI_INSTALL=n //計費模塊
75 CONFIG_NTP_SERVERS=192.168.1.254 // ntp服務器地址
98 CONFIG_COMPUTE_HOSTS=192.168.1.11 //nova組件安裝的主機地址
102 CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11 //neutron組件安裝的主機地址
333 CONFIG_KEYSTONE_ADMIN_PW=a //默認的管理員密碼 330是用戶名
840 CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat //支持的網絡協議, flat直連網絡,vxlan-->valn的擴展模式vlan支持1-4096個用戶,vxlan比較大
910 CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex //虛擬交換機的名稱
921 CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 //指定br-ex交換機外網出口的網卡
1179 CONFIG_PROVISION_DEMO=n //演示demo 關閉
...
:wq
[root@openstack8 ~]# packstack --answer-file=answer.ini //一鍵部署openstack,時間大概20分鐘~40分鐘不等
Welcome to the Packstack setup utility
The installation log file is available at: /var/tmp/packstack/20191009-112804-UhwdSh/openstack-setup.log
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 ]
Installing time synchronization via NTP [ 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 Puppet manifests [ DONE ]
Copying Puppet modules and manifests [ DONE ]
Applying 192.168.1.20_controller.pp
192.168.1.20_controller.pp: [ DONE ]
Applying 192.168.1.20_network.pp
Applying 192.168.1.21_network.pp
192.168.1.20_network.pp: [ DONE ]
192.168.1.21_network.pp: [ DONE ]
Applying 192.168.1.21_compute.pp
192.168.1.21_compute.pp: [ DONE ]
Applying Puppet manifests [ DONE ]
Finalizing [ DONE ]
**** Installation completed successfully ****** //出現successfully就成功啦
Additional information:
* File /root/keystonerc_admin has been created on OpenStack client host 192.168.1.20. To use the command line tools you need to source the file.
* To access the OpenStack Dashboard browse to http://192.168.1.20/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
* The installation log file is available at: /var/tmp/packstack/20191009-112804-UhwdSh/openstack-setup.log
* The generated manifests are available at: /var/tmp/packstack/20191009-112804-UhwdSh/manifests
[root@openstack8 ~]#
[root@openstack8 ~]# vim /etc/httpd/conf.d/15-horizon_vhost.conf //Horizon 存在一個軟件的配置BUG
WSGIApplicationGroup %{GLOBAL} //在35行後下面加上這一行就可以解決
[root@openstack8 ~]#apachectl graceful //重新加載配置
最後在真機上登入網站
[root@room9pc01 ~]# firefox 192.168.1.20 //出現如圖首頁
用戶默認admin,密碼是你當時改的密碼
登入成功後顯示界面
到這呢阿坤的8G openstack雲平臺就挑戰成功遼,至於爲什麼沒nova1,nova2一起安裝呢,是因爲電腦內存不允許呀,小編怕爆內存,所以安全起見就只先安裝了nova1,至於nova2配置夠的小夥伴可以一試哦!