1. 程式人生 > 實用技巧 >openstack-Centos -7.7.1908映象製作

openstack-Centos -7.7.1908映象製作

簡介

通過 KVM 安裝虛 Centos 和 Windwos 2008 R2_x86_64 作業系統步驟並將磁碟檔案作為映象上傳到 openstack glance,作為批量建立虛擬機器的映象檔案,其中 windowsn 2008 安裝 virtio 半虛擬化驅動,以實現網路 IO 和磁碟 IO 的半虛擬化提升速度,Centos 7 預設即支援半虛擬化,不需要安裝驅動,Virtio 最初由澳大利亞的一個天才級程式設計師 Rusty Russell 編寫,是一個在 hypervisor 之上的抽象 API 介面,讓客戶機知道自己執行在虛擬化環境中,從而與 hypervisor 根據 virtio 標準協作,從而在客戶機中達到更好的效能(特別是 I/O 效能),目前,有不少虛擬機器都採用了 virtio 半虛擬化驅動來提高效能

Centos 7.7.1908-映象製作

https://docs.openstack.org/image-guide/centos-image.html #centos映象製作文件

映象製作前,需要找一臺乾淨的伺服器安裝KVM,此伺服器專門用於製作openstack所需的虛擬機器映象;KVM伺服器(虛擬機器)需要開啟CPU虛擬化功能


##KVM伺服器所需要執行的操作
1、yum install -y qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install acpid  
#acpid是對電源進行管理的,讓宿主機可以重啟虛擬機器,即可以通過virsh命令對虛擬機器進行重啟

2、systemctl start libvirtd acpid

3、systemctl enable libvirtd acpid

4、cd /usr/local/src  #上傳ISO映象

5、qemu-img create -f qcow2 /var/lib/libvirt/images/CentOS-7-x86_64.qcow2 10G  
#建立虛擬機器磁碟檔案並指定路徑,格式為qcow2,qcow2跟使用量動態增長,也可以是 raw 格式(一次性佔用宿主機磁碟)

6、建立橋接網路
(1)、vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
(2)、vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=static
NAME=eth1
DEVICE=eth1
ONBOOT=yes
BRIDGE=br1
(3)、vim /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=172.31.7.10
GATEWAY=172.31.7.254
PREFIX=21
(4)、vim /etc/sysconfig/network-scripts/ifcfg-br1
TYPE=Bridge
BOOTPROTO=none
NAME=br1
DEVICE=br1
ONBOOT=yes
IPADDR=10.10.7.10
PREFIX=21

7、systemctl restart network

8、virt-install --virt-type kvm --name CentOS7-x86_64 --ram 1024 --cdrom=/usr/local/src/CentOS-7-x86_64-Minimal-1908.iso --disk path=/var/lib/libvirt/images/CentOS7-x86_64.qcow2 --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
#建立虛擬機器(虛擬機器磁碟檔案在openstack中就是映象),指定虛擬機器型別為KVM、記憶體大小、ISO映象位置、磁碟檔案位置、網路橋接br0網路、圖形使用的是vnc,監聽在所有埠

9、virt-manager   #xshell開啟xll轉發後,可以檢視到虛擬機器

10、選擇虛擬機器,安裝作業系統(16)
##ansible伺服器配置
1、ssh-keygen

2、ssh-copy-id 172.31.0.9  
#將ansible伺服器的公鑰拷貝到KVM所建立的虛擬機器中,用於後期批量部署服務,實現免密要;此步驟需要在下面步驟之間執行,在下面安裝完基礎命令之後,獲取到虛擬機器DHCP地址之後,把ansible的公鑰拷貝到虛擬機器即可


##所建立的虛擬機器中執行的操作
1、vi /etc/sysconfig/network-scripts/ifcfg-eth0  #修改網路配置
TYPE=Ethernet
BOOTPROTO=dhcp  #KVM建立的虛擬機器不要指定靜態IP地址,openstack會自動分配,即使KVM指定了靜態地址,但是通過openstack建立完虛擬機器後,指定的地址也無法通訊
NAME=eth0        
DEVICE=eth0
ONBOOT=yes

2、systemctl restart network

3、vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root net.ifnames=0 biosdevname=0 rhgb quiet"
#修改網絡卡名稱的核心引數

4、grub2-mkconfig -o /boot/grub2/grub.cfg
#重新生成GRUB配置並更新核心引數

5、reboot     #重啟後核心引數生效

6、ifconfig   #檢視IP地址後,通過xshell連線過去

7、yum install vim iotop bc gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl  openssl-devel zip unzip zlib-devel  net-tools lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel bc  systemd-devel bash-completion traceroute -y   #安裝系統常用命令

8、systemctl disable firewalld

9、systemctl disable NetworkManager

10、vim /etc/sysconfig/selinux
SELINUX=disabled

11、vim /etc/hostname
openstack.example.linux.local

12、poweroff    #必須將虛擬機器關機,保證資料一致性


##KVM伺服器所需要做的操作
1、cd /var/lib/libvirt/images/

2、scp CentOS-7-x86_64.qcow2 172.31.7.102:/usr/local/src
#將虛擬機器的磁碟檔案傳送到controller節點上


##controller節點執行的操作
1、cd /usr/local/src/

2、source /root/admin-openrc.sh

3、openstack image create "CentOS-1908-7.7-x86_64-template" --file /usr/local/src/CentOS-7-x86_64.qcow2 --disk-format qcow2 --container-format bare --public
#建立映象,指定映象名稱、指定虛擬機器磁碟檔案路徑、磁碟格式qcow2、裸磁碟格式、映象可見性為公有;建立完的映象會上傳到glance

4、openstack image list  #檢視映象是否建立成功

5、dashboard上使用提交的映象建立虛擬機器

6、ansible伺服器免密要連線虛擬機器,批量部署服務