1. 程式人生 > >Openstack搭建與應用(1)

Openstack搭建與應用(1)

本篇寫Openstack搭建,下篇寫Openstack應用
本例使用一臺物理機虛擬化兩臺虛擬機器(openstack+nova)
物理機配置:

  1. CPU型號:Intel® Core™ i5-2320 CPU @ 3.00GHz(親測筆記本3代i5帶不起來)
  2. 記憶體至少16G;Openstack 8G;nova 6G(4G我的起來了,卻看見別人安裝時記憶體報錯,建議6G)
  3. 物理機系統Centos7.0

1、物理機
禁用 selinux
#vim /etc/selinux/config
SELINUX=disabled

禁用 firewalld
#systemctl stop firewalld
#systemctl mask firewalld

搭建KVM虛擬化平臺和FTP

#yum install qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu vsftpd
#systemctl enabled libvirtd  #開機自啟libvirtd服務
#systemctl enabled vsftpd   #起不來的檢視配置檔案/etc/vsftpd/vsftpd.conf  是否listen=YES;listen_ipv6=NO

掛載yum源在FTP上

#mkdir /var/ftp/centos7_ISO
#mkdir /var/ftp/openstack 
#mkdir /var/ftp/openstack-ext 
#echo '/root/ISO/CentOS7-1708.iso /var/ftp/centos7_ISO iso9660 defaults        0 0' >>/etc/fstab
#echo '/root/ISO/RHEL7OSP-10.iso /var/ftp/openstack    iso9660 defaults        0 0' >>/etc/fstab
#echo 'root/ISO/RHEL7-extras.iso /var/ftp/openstack-ext iso9660 defaults      0 0' >>/etc/fstab

重啟系統


1.2、物理機
#安裝配置轉發DNS
https://blog.csdn.net/qq_38900565/article/details/83869495
#時間伺服器,server、 client
https://blog.csdn.net/qq_38900565/article/details/83869856
1.3、建立虛擬交換機

#vim /etc/libvirt/qemu/networks/vbr.xml
<network>															
<name>vbr</name>													
<bridge name="vbr"/> 網路裝置名									
<forward mode="nat"/> 表示可以上網									
<ip address="192.168.3.254" network="255.255.255.0">裝置IP地址		
<dhcp><range start="192.168.3.100" end="192.168.3.200"/></dhcp>	
</ip>																
</network>	

#vim /etc/libvirt/qemu/networks/private.xml
<network>															
<name>private1</name>													
<bridge name="private1"/> 網路裝置名														
<ip address="192.168.4.254" network="255.255.255.0">裝置IP地址	
</ip>																
</network>	
#virsh net-list --all  
#virsh net-start vbr
#virsh net-autostart vbr

1.4、建立後端盤node.qcow2(方便以後快速批量生成nova計算節點)
1.4.1建立後端盤

#cd /var/lib/libvirt/images/
#qemu-img create -f qocw2 node.qcow2  5G

1.4.2使用自己建立的後端盤和網路新建虛擬機器

在這裡插入圖片描述
開始安裝後,使用英語;時區選上海;關閉KUDMP;只分一個/分割槽(標準化分割槽)
在這裡插入圖片描述
2.配置模板虛擬機器
進入系統輸入root和密碼後:
2.1. 配置yum源

#vi /etc/yum.repos.d/rhel7_4.repo
[rhel7.4]											
name=rhel7.4									
baseurl=ftp://192.168.3.254/rhel7.4   #網橋地址	
enabled=1										
gpgcheck=0										

2.2. 禁用selinux disabled,#systemctl disabled firewalld重啟
2.3. 配置eth0,解除安裝防火牆與NetworkManager

#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0									
ONBOOT=yes									
IPV6INIT=no										
BOOTPROTO=dhcp								
TYPE=Ethernet
#yum -y remove *firewalld* NetworkManager*
#systemctl stop NetworkManager
#systemctl restart network

2.4. 系統配置

#sed -i 's/gpgcheck=0/gpgcheck=1/g' /etc/yum.repos.d/rhel7_4.repo
#rpm --import ftp://192.168.3.254/centos7_ISO/RPM-GPG-KEY-redhat-release      #匯入gpgkey
#yum install net-tools vim-enhanced bridge-utils psmisc  #安裝常用軟體和系統命令
#echo 'NOZEROCONF="yes"' >>/etc/sysconfig/network   #禁止空路由(會與後面的openstact衝突)
#vim /etc/default/grub       #開啟串列埠,否則console會卡住進不去
GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=ttyS0,115200n8"	
GRUB_DISABLE_LINUX_UUID="true"		#禁用uuid,啟用卷標實現引導			
GRUB_ENABLE_LINUX_LABEL="ture"			
#grub2-mkconfig -o /boot/grub2/grub.cfg     #重新生成grub.cfg

/etc/fstab檔案中到UUID手工修改系統裝置
blkid檢視uuid對應的磁碟裝置,修改fstab檔案
/dev/vda1: UUID=“5abb5dfe-2ca2-4dfc-9f2b-2b9fb8a59d26” TYPE=“xfs”
把etc/fstab的uuid換成/dev/vda1

2.5. 最後一步,安裝分割槽擴充套件軟體

#yum install -y cloud-utils-growpart
關閉虛擬機器後執行資訊清理工作
#virt-sysprep -d 虛擬機器名

注:以後使用該後端建立虛擬機器,第一次開機執行擴容根目錄
/usr/bin/growpart /dev/vda1 //擴容分割槽lsblk
/usr/sbin/xfs_growfs/ //擴容檔案系統df

3.建立openstack虛擬機器
3.1匯出虛擬機器xml檔案,讓node成為真正意義後端盤

#virsh dumpxml node > /tmp/demo.xml
#virsh undefine node        #使node虛擬機器不可進入,防止寫操作

3.2編輯openstack虛擬機器xml檔案和建立前端盤(以node為後端對映)
先在物理機建立一個硬碟

cd /var/lib/libvirt/images/
qemu-img create -f qcow2 硬碟名 20G
#cp /tmp/demo.xml > /etc/libvirt/qemu/openstack.xml
#vi /etc/libvirt/qemu/openstack.xml
<name>node</name>      #改為openstack
<uuid>321856cc-2a05-4376-b9d9-5ea88c252ed0</uuid>  #該行刪除
<memory unit='KiB'>8231488</memory>             #記憶體改為8G+
  <currentMemory unit='KiB'>8231488</currentMemory>         #同上
  <vcpu placement='static'>2</vcpu>                       #核心數寫2
<cpu mode='host-passthrough'> </cpu>              
<clock offset=’localtime’ />      
去掉安全標籤,可以刪除<seclabel>            

#新增網絡卡
<interface type=’network’>
<source network=’private’ />
<model type=’virtio’ />
<target dev='vnet0'/>
</interface>
#新增硬碟
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 硬碟名 20G
<disk type=’file’ device=’disk’>
<driver name=’qemu’ type=’qcow2’ />
<source file=’/var/lib/libvirt/images/硬碟名’ />這裡寫你建立的硬碟路徑位置
<target dev=’vdb’ bus=’scsi’ />
</disk>

定義虛擬機器
virsh define /etc/libvirt/qemu/openstack.xml
virsh start openstack
4. Openstack安裝
4.1進入新建虛擬機器openstack:

第一塊網絡卡連線虛擬交換機 vbr
第二塊網絡卡連線虛擬交換機 private
設定靜態 IP,預設閘道器 192.168.3.254

#vim /etc/sysconfig/network-scripts/ifcfg-eth0        #複製該檔案到該目錄下重新命名ifcfg-eth1
DEVICE=eth0                     #eth1									
ONBOOT=yes									
IPV6INIT=no										
BOOTPROTO=none								
TYPE=Ethernet
IPADDR=192.168.3.1           #eth1改為192.168.4.1
GATEWAY="192.168.3.254"       #預設閘道器  eth1不需要該行
#echo "192.168.3.1  openstack  openstack.test.com" >>/etc/hosts
#echo "192.168.3.2  nova nova.test.com" >>/etc/hosts

4.2yum源配置

#vim /a.txt
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
# for i in `cat /a.txt` ; do echo "[$i]
name={$i}
baseurl=ftp://192.168.3.254/openstack/${i}
enabled=1
gpgcheck=0" >> /etc/yum.repo.d/openstack.repo; done
#vim /etc/yum.repos.d/openstack-ext.repo 
[openstack_extras]
name=openstack extras
baseurl=ftp://192.168.3.254/openstack-ext
enabled=1
gpgcheck=0

安裝虛擬化平臺(nova也要)

yum install -y qemu-kvm libvirt-client  libvirt-daemon  libvirt-daemon-driver-qemu python-setuptools

4.3將openstack虛擬機器的DNS和NTP指向192.168.3.254

 #echo "nameserver  192.168.3.254" >/etc/resolv.conf
 
 #vim /etc/chrony.conf 配置指向物理機的IP
 server 192.168.1.254 iburst

驗證:

ping  www.baidu.com
chronyc sources -v

4.4安裝openstack

配置卷組
#pvcreate /dev/vdb 					
#vgcreate cinder-volumes /dev/vdb 	
#vgs	

#yum install -y openstack-packstack
#packstack --gen-answer-file answer.ini

編輯answer.ini

11:  CONFIG_DEFAULT_PASSWORD=Test   #配置預設密碼
42:  CONFIG_SWIFT_INSTALL=n    #設定禁用 swift (物件儲存) 模組
75:  CONFIG_NTP_SERVERS=192.168.3.254   #NTP 伺服器地址
98:  CONFIG_COMPUTE_HOSTS=192.168.3.1#計算節點IP地址
102: CONFIG_NETWORK_HOSTS=192.168.3.1  #需要配置vxlan網路的 IP 地址
554: CONFIG_CINDER_VOLUMES_CREATE=n  #禁用自動建立 cinder-volumns 卷組
840: CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan  #設定網路支援協議
876: CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5  #設定組播地址
910: CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex    #設定虛擬交換機
921: CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0  #設定虛擬交換機所連線的物理網絡卡
936: CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1#設定隧道網路使用的網絡卡
1179:CONFIG_PROVISION_DEMO=n  #禁用測試的DEMO

#packstack --answer-file=answer.ini

修改 /etc/httpd/conf.d/15-horizon_vhost.conf
新增 WSGIApplicationGroup %{GLOBAL}
#apachectl graceful #重新載入配置

#cat keystonerc_admin 
unset OS_SERVICE_TOKEN
    export OS_USERNAME=admin
    export OS_PASSWORD=70ad0dbd9da248f9
    export OS_AUTH_URL=http://192.168.3.1:5000/v2.0
    export PS1='[\[email protected]\h \W(keystone_admin)]\$ '

物理機#firefox 192.168.3.1 出現以下頁面:輸入上面的admin和密碼:70ad0dbd9da248f9
在這裡插入圖片描述

搭建完成!下篇文章寫Openstack應用