Я пытаюсь настроить автоматизированную среду установки для Ubuntu 22.04. У нас это уже работает в production для 20.04 и предыдущих LTS-релизов в течение многих лет. Мы используем pxe/isolinux и сервер tftp и dhcp для выполнения сетевой загрузки и загрузки с CD. И некоторые трюки, чтобы заставить работать uefi.
Мне не удалось найти рабочие образы vmlinuz и initrd, которые позволили бы мне запустить автоматическую установку Ubuntu 22.04 с использованием preseeding и установщика Debian (di).
Я использую следующее для установки 20.04, это не работает на 22.04:
linuxefi /path/to/2004/amd64/linux auto=true priority=critical url=http://example.com/ubuntu/2004/amd64/seed_ub_uefi.cfg console-setup/layoutcode=us interface=auto
initrdefi /path/to/2004/amd64/initrd.gz
Я пытался извлечь образы vmlinuz и initrd.gz из образов iso компакт-дисков ubuntu 22.04. Однако, что бы я ни пытался, он даже не может найти корневую файловую систему. Я предполагаю, что образы больше не имеют встроенной функциональности di и preseed?
Если таких образов не существует, как мне создать свой собственный? Я не чувствую себя слишком счастливым, переходя на любой автоматизированный метод установки, который Canonical хочет навязать. Вся наша инфраструктура основана на ранее упомянутом методе, и мы устанавливаем несколько ОС похожим образом.
решение1
Ubuntu уже перешла на cloud-init в 20.04, они оставили preseed-метод только для совместимости. Теперь он исчез навсегда.
Вам необходимо создать файл .yml с таким именем user-data
:указано здесь.
Затем вы можете указать путь к каталогу, содержащему файл в grub.cfg.
Я предоставляю файл непосредственно в .iso (в каталоге /nocloud/
), но вы можете так же легко предоставить http-адрес.
menuentry "Install Ubuntu Server (autoinstall)" {
set gfxpayload=keep
linux /casper/vmlinuz quiet autoinstall ds=nocloud\;s=/cdrom/nocloud/ ---
initrd /casper/initrd
}
решение2
Предыдущее устарело с 20.04 и было удалено в 22.04. Ubuntu теперь использует autoinstall (также называется cloud-init):https://ubuntu.com/server/docs/install/autoinstall
Если вам нужен подробный рабочий пример, взгляните на этот репозиторий GitHub:https://github.com/lavabit/robox
Он использует Packer для генерации Vagrant-боксов для нескольких провайдеров. Он использует автоустановку с Ubuntu 20.10.