2023年7月6日 星期四

Ubuntu Server 22.04 cloud-init autoinstall

Ubuntu Server 22.04 use cloud-init autoinstall


Ubuntu 從20.04開始使用cloud-init 製作自動化安裝程序,不再使用Debian Preseeds。後續將使用cloud-init配置安裝設定,再通過 NoCloud 安式提供用戶資料。

測試環境

VMware esxi 7.0u2
ubuntu-22.04.2-live-server-amd64.iso

建立ISO過程使用ubuntu-22.04.2-live-server-amd64.iso示範

Ubuntu Server Autoinstall ISO制作流程

1.安裝相關套件
# sudo apt install p7zip-full wget curl xorriso vim
安裝相關套件








2.下載 Ubuntu Server 22.04.2 ISO
# wget https://releases.ubuntu.com/22.04.2/ubuntu-22.04.2-live-server-amd64.iso
下載 Ubuntu Server 22.04.2



3.將Ubuntu Server ISO 解壓縮至目錄 source-files
# mkdir ~/source-files
# 7z -y x ubuntu-22.04.2-live-server-amd64.iso -osource-files
將Ubuntu Server ISO 解壓縮至目錄 source-files




4.移除Ubuntu Server ISO 現有 MBR 和 EFI 分區(1-Boot-NoEmul.img 2-Boot-NoEmul.img)
# cd source-files/
# mv  '[BOOT]' ../BOOT
移除Ubuntu Server ISO 現有 MBR 和 EFI 分區映像











5.新增ISO開機Autoinstall 選項
新增ISO開機Autoinstall 選項

# vim ~/source-files/boot/grub/grub.cfg

開機選項指定cloud-init使用nocloud,直接存取iso的/server目錄資料(user-data)
menuentry "Autoinstall Ubuntu Server" {
    set gfxpayload=keep
    linux   /casper/vmlinuz quiet autoinstall ds=nocloud\;s=/cdrom/server/  ---
    initrd  /casper/initrd
}
grub.cfg add autoinstall










6.建立cloud-init的user-data和meta-data
create user-date meta-date
# mkdir ~/source-files/server
# touch ~/source-files/server/meta-data
# vim ~/source-files/server/user-data
user-data 為標準yaml格式,可以依需求編輯。也可以在已安裝的Ubuntu Server 主機中獲取,位置為 /var/log/installer/autoinstall-user-data,直接更名為user-data,放置於~/source-files/server
autoinstall-user-data




可以直接使用user-data,分別依BIOS或UEFI檔案下載,更名為user-data使用

7.驗證的user-data和meta-data
可以使用 cloud-init schema --config-file 驗證user-data和meta-data
# sudo cloud-init schema --config-file server/user-data
cloud-init schema --config-file server/user-data







# sudo cloud-init schema --config-file server/meta-data
cloud-init schema --config-file server/meta-data













在驗證meta-data過程時,有發生error,直接依需求加入"#cloud-conifg",就無error

8.製作安裝 Ubuntu Server 22.04 Autoinstall ISO
列出ubuntu-22.04.2-live-server-amd64.iso 資料
# xorriso -indev ~/ubuntu-22.04.2-live-server-amd64.iso -report_el_torito as_mkisofs
# xorriso -as mkisofs -r   -V 'Ubuntu 22.04 LTS AUTO (EFIBIOS)'   -o ../ubuntu-22.04-autoinstall.iso   --grub2-mbr ../BOOT/1-Boot-NoEmul.img   -partition_offset 16   --mbr-force-bootable   -append_partition 2 28732ac11ff8d211ba4b00a0c93ec93b ../BOOT/2-Boot-NoEmul.img   -appended_part_as_gpt   -iso_mbr_part_type a2a0d0ebe5b9334487c068b6b72699c7   -c '/boot.catalog'   -b '/boot/grub/i386-pc/eltorito.img'     -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info   -eltorito-alt-boot   -e '--interval:appended_partition_2:::'   -no-emul-boot   .
make autoinstall iso
























9.使用VM驗證開機





參考資料


沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。