1.??? 準(zhǔn)備好一臺(tái)裝有centos7桌面版系統(tǒng)的物理機(jī),進(jìn)入后
yum update
(安裝過(guò)程交互的三種方式:這里我們使用桌面系統(tǒng)上的界面操作,更方便簡(jiǎn)單,推薦雀久;純敲命令,使用vnc登陸安裝的方式較為麻煩趁舀,不推薦赖捌;純敲命令,不使用界面交互的方式理論上可行赫编,較麻煩巡蘸,不推薦)
2.??? 安裝libvirt各項(xiàng)組件
yum install kvm libvirt libvirt-pythonvirt-install virt-manager virt-viewer libguestfs-tools qemu bridge-utils qemu-kvm virt-top
其中kvm和qemu相關(guān)的軟件系統(tǒng)自帶,這里是以防萬(wàn)一擂送;virt-manager安裝后會(huì)在系統(tǒng)工具中看到虛擬機(jī)管理程序悦荒,可以界面操作;virt-install是啟動(dòng)虛擬機(jī)命令嘹吨;其他相關(guān)組件具體作用不做交代搬味,請(qǐng)自行查詢。
3.??? 創(chuàng)建qcow2磁盤:
qemu-img create -f qcow2 centos7.qcow2 20G
4.??? 啟動(dòng)虛擬機(jī):(用虛擬機(jī)管理程序創(chuàng)建qcow2磁盤蟀拷、導(dǎo)入iso文件安裝更簡(jiǎn)單碰纬,不必考慮下列各項(xiàng)參數(shù)具體含義)
virt-install --name centos --ram 1024--disk /tmp/centos.qcow2,format=qcow2 --network network=default --graphicsvnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7? --location=/data/isos/CentOS-7-x86_64-NetInstall-1511.iso
disk:指定虛擬磁盤路徑
network:網(wǎng)絡(luò)連接方式,默認(rèn)使用NAT问芬;使用bridge方式參數(shù):--network bridge:br0悦析,使用網(wǎng)橋方式需要先在物理機(jī)上創(chuàng)建網(wǎng)橋br0
graphices: 界面交互方式;這里創(chuàng)建了一個(gè)vnc連接此衅,使用vnc方式强戴;我們實(shí)際使用的是virt-manager界面亭螟;如果想純敲命令不進(jìn)行界面交互,參數(shù)為--graphics
none骑歹,并添加--extra-args="console=tty0 console=ttyS0,115200"预烙,再使用virsh console centos7登陸
location:指定iso文件路徑
(我們制作完鏡像后,使用時(shí)會(huì)修改硬件資源的參數(shù)道媚,所以啟動(dòng)虛擬機(jī)時(shí)可以指定任意參數(shù)扁掸,如這里ram是1024M,vcpu沒(méi)有指定最域,網(wǎng)絡(luò)使用NAT谴分,修改為其他參數(shù)也可以)
5.??? 對(duì)鏡像進(jìn)行配置修改:
a.???? 允許ssh root登陸:
b.??? 安裝acpid
為了hypervisor能夠管理虛擬機(jī)生命周期(shutdown、reboot等)羡宙,虛擬機(jī)需要安裝acpid服務(wù):
yum install -y acpid
systemctl enable acpid
c.???? 記錄虛擬機(jī)的啟動(dòng)日志供nova console-log使用
編輯/etc/default/grub文件
修改GRUB_CMDLINE_LINUX 行狸剃,刪除 rhgb quiet
添加the console=tty0 console=ttyS0,115200n8
運(yùn)行g(shù)rub2-mkconfig -o /boot/grub2/grub.cfg保存修改
d.??? yum update
e.???? 安裝qemu-guest-agent:用于從面板在線更新密碼/密鑰
yum install -y qemu-guest-agent
配置qemu-ga,修改/etc/sysconfig/qemu-ga
TRANSPORT_METHOD="virtio-serial"
DEVPATH="/dev/virtio-ports/org.qemu.guest_agent.0"
LOGFILE="/var/log/qemu-ga/qemu-ga.log"??????????????
PIDFILE="/var/run/qemu-ga.pid"
BLACKLIST_RPC=""
FSFREEZE_HOOK_ENABLE=0
f.???? 禁用zeroconf route:
echo "NOZEROCONF=yes" >>/etc/sysconfig/network
g.??? 安裝cloud-init:實(shí)現(xiàn)密碼注入功能
yum install epel-release.noarch
yum install cloud-init
h.??? 安裝growpart:在創(chuàng)建虛擬機(jī)時(shí)能夠自動(dòng)識(shí)別根分區(qū)大小并自動(dòng)調(diào)整
yum install -y epel-release
yum install -ycloud-utils-growpart
rpm -qa kernel |sed 's/^kernel-//'? | xargs -I {} dracut -f/boot/initramfs-{}.img {}
i.????? 關(guān)機(jī)
shuedown now
j.????? 刪除硬件信息:
virt-sysprep -d centos7
k.???? 刪除虛擬機(jī)配置文件:
virsh undefine centos7
(至此鏡像制作完成)
6.??? 使用鏡像:
?????1)在openstack平臺(tái)上狗热,導(dǎo)入鏡像文件驗(yàn)證密碼注入、磁盤根分區(qū)大小修改等功能是否正常虑省;
glance?image-create --progress --container-format bare --disk-format raw --fileimg.raw --name img --property hw_qemu_guest_agent=yes --propertyos_admin_user=root --property os_type="linux"