下載CentOS ISO鏡像文件
在CentOS mirrors 找到合適的站點(diǎn)下載 CentOS-7-x86_64-DVD-1611.iso
泪电,這里我選擇網(wǎng)易鏡像進(jìn)行下載:
# wget http://mirrors.163.com/centos/7.3.1611/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso
開始安裝過程
安裝過程可以使用 virt-manager 或者 virt-install 命令怎披,如果用 virt-install :
# qemu-img create -f qcow2 /tmp/CentOS-7-x86_64-v1.qcow2 10G
# virt-install --virt-type kvm --name centos7 --ram 1024 \
--disk /tmp/CentOS-7-x86_64-v1.qcow2,format=qcow2 \
--network=bridge:br0 \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--os-type=linux --os-variant=centos7.0 \
--location=/storage/isos/CentOS-7-x86_64-DVD-1611.iso
通過 --network=bridge:br0
指定網(wǎng)絡(luò)類型和接口。
逐步安裝
根據(jù)提示滞时,逐步安裝。
配置網(wǎng)絡(luò)信息,確保能正確訪問互聯(lián)網(wǎng)欣福,軟件選擇最小化安裝替饿。
接著設(shè)置root 管理員密碼语泽,普通用戶這里不用創(chuàng)建,最后等待安裝完成并重啟系統(tǒng)视卢。
執(zhí)行virsh dumpxml matching-name 可查看對應(yīng)信息:
# virsh dumpxml centos7
<domain type='kvm'>
<name>centos7</name>
...
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<target dev='hda' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
...
</domain>
在主機(jī)運(yùn)行virsh
命令彈出磁盤踱卵,再重啟host。
# virsh attach-disk --type cdrom --mode readonly centos7 "" hda
Disk attached successfully
# virsh reboot centos7
Domain centos7 is being rebooted
安裝ACPI服務(wù)
以root身份登錄guest主機(jī)据过,安裝并設(shè)置開機(jī)啟用acpid
服務(wù):
# yum install acpid
# systemctl enable acpid
配置元數(shù)據(jù)
一般在實(shí)例創(chuàng)建最后一步時惋砂,必須要獲取到用戶的公鑰信息妒挎,還有用戶的數(shù)據(jù)和腳本,如何獲取到西饵? 此時就需要guest host 安裝cloud-init
程序包來獲取這些信息:
# yum install cloud-init
在基于CentOS的虛擬機(jī)上酝掩,公鑰信息會被存放在centos帳號下,也就是可以使用centos作為用戶名眷柔,通過密鑰遠(yuǎn)程登錄庸队。通過編輯/etc/cloud/cloud.cfg
文件可以使用其他的用戶帳號名稱。
安裝cloud-utils-growpart 以允許調(diào)整分區(qū)大小
# yum install cloud-utils-growpart
禁用zeroconf 路由
對于訪問元數(shù)據(jù)服務(wù)的實(shí)例闯割,必須禁用默認(rèn)的zeroconf路由:
# echo "NOZEROCONF=yes" >> /etc/sysconfig/network
另外彻消,還需要手動修改下網(wǎng)卡的配置文件:
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
NM_CONTROLLED="no"
再自定義設(shè)置一些初始化的運(yùn)行環(huán)境。
配置控制臺
為了讓 nova console-log 命令在CentOS 7能正常執(zhí)行宙拉,還需修改一下配置:
-
編輯
/etc/default/grub
宾尚,在GRUB_CMDLINE_LINUX
選項(xiàng),刪除rhgb quiet
谢澈,再添加console=tty0 console=ttyS0,115200n8
煌贴。
例如:# cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto console=tty0 console=ttyS0,115200n8" GRUB_DISABLE_RECOVERY="true"
-
運(yùn)行下面命令進(jìn)行修改保存:
# grub2-mkconfig -o /boot/grub2/grub.cfg
關(guān)閉實(shí)例
在實(shí)例內(nèi)部,以root身份關(guān)閉實(shí)例:
# poweroff
清除MAC地址
在實(shí)例運(yùn)行中锥忿,操作系統(tǒng)會將虛擬以太網(wǎng)卡的MAC地址記錄在/etc/sysconfig/network-scripts/ifcfg-eth0
等位置牛郑。但是,每次使用鏡像啟動新實(shí)例時敬鬓,虛擬以太網(wǎng)卡將會有不同的MAC地址淹朋,因此必須從配置文件中刪除該信息。
可以用virt-sysprep 程序钉答,完成各種清理任務(wù)础芍,如刪除MAC地址引用:
# virt-sysprep -d centos7
如果沒有virt-sysprep 這個命令,需要手動安裝:
# yum install libguestfs-tools
取消定義libvirt域
# virsh undefine centos7
Domain centos7 has been undefined
壓縮鏡像
# virt-sparsify --compress /tmp/CentOS-7.3-x86_64-Cloud.qcow2 CentOS-7.3-x86_64-Cloud.qcow2
至此数尿,可以將鏡像上傳至 Image service 使用仑性。
【參考】:
https://docs.openstack.org/image-guide/centos-image.html