OpenStack CentOS7鏡像制作

下載CentOS ISO鏡像文件

CentOS mirrors 找到合適的站點下載 CentOS-7-x86_64-DVD-1611.iso ,這里我選擇網易鏡像進行下載:

# 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 指定網絡類型和接口。

逐步安裝

根據(jù)提示,逐步安裝。

安裝界面

配置網絡信息,確保能正確訪問互聯(lián)網,軟件選擇最小化安裝。

配置界面

接著設置root 管理員密碼,普通用戶這里不用創(chuàng)建,最后等待安裝完成并重啟系統(tǒng)。

執(zhí)行virsh dumpxml matching-name 可查看對應信息:

# 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>

在主機運行virsh命令彈出磁盤,再重啟host。

# virsh attach-disk --type cdrom --mode readonly centos7 "" hda
Disk attached successfully
# virsh reboot centos7
Domain centos7 is being rebooted

安裝ACPI服務

以root身份登錄guest主機,安裝并設置開機啟用acpid服務:

# yum install acpid
# systemctl enable acpid

配置元數(shù)據(jù)

一般在實例創(chuàng)建最后一步時,必須要獲取到用戶的公鑰信息,還有用戶的數(shù)據(jù)和腳本,如何獲取到? 此時就需要guest host 安裝cloud-init程序包來獲取這些信息:

# yum install cloud-init

在基于CentOS的虛擬機上,公鑰信息會被存放在centos帳號下,也就是可以使用centos作為用戶名,通過密鑰遠程登錄。通過編輯/etc/cloud/cloud.cfg文件可以使用其他的用戶帳號名稱。

安裝cloud-utils-growpart 以允許調整分區(qū)大小

# yum install cloud-utils-growpart

禁用zeroconf 路由

對于訪問元數(shù)據(jù)服務的實例,必須禁用默認的zeroconf路由:

# echo "NOZEROCONF=yes" >> /etc/sysconfig/network

另外,還需要手動修改下網卡的配置文件:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE="eth0"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
NM_CONTROLLED="no"

再自定義設置一些初始化的運行環(huán)境。

配置控制臺

為了讓 nova console-log 命令在CentOS 7能正常執(zhí)行,還需修改一下配置:

  1. 編輯/etc/default/grub ,在GRUB_CMDLINE_LINUX 選項,刪除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"
    
  2. 運行下面命令進行修改保存:

    # grub2-mkconfig -o /boot/grub2/grub.cfg
    

關閉實例

在實例內部,以root身份關閉實例:

# poweroff
保存修改并關機

清除MAC地址

在實例運行中,操作系統(tǒng)會將虛擬以太網卡的MAC地址記錄在/etc/sysconfig/network-scripts/ifcfg-eth0等位置。但是,每次使用鏡像啟動新實例時,虛擬以太網卡將會有不同的MAC地址,因此必須從配置文件中刪除該信息。
可以用virt-sysprep 程序,完成各種清理任務,如刪除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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容