Openstack搭建與應用(1)
本篇寫Openstack搭建,下篇寫Openstack應用
本例使用一臺物理機虛擬化兩臺虛擬機器(openstack+nova)
物理機配置:
- CPU型號:Intel® Core™ i5-2320 CPU @ 3.00GHz(親測筆記本3代i5帶不起來)
- 記憶體至少16G;Openstack 8G;nova 6G(4G我的起來了,卻看見別人安裝時記憶體報錯,建議6G)
- 物理機系統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應用