So verwenden Sie di und Preseeding am 22.04

So verwenden Sie di und Preseeding am 22.04

Ich versuche, eine automatisierte Installationsumgebung für Ubuntu 22.04 einzurichten. Wir haben dies bereits seit vielen Jahren in der Produktion für 20.04 und frühere LTS-Versionen im Einsatz. Wir verwenden pxe/isolinux und einen TFTP- und DHCP-Server, um das Netzwerk und den CD-Boot durchzuführen. Und ein paar Tricks, um UEFI zum Laufen zu bringen.

Ich kann keine funktionierenden vmlinuz- und initrd-Images finden, die es mir ermöglichen, eine automatisierte Ubuntu 22.04-Installation mithilfe von Preseeding und dem Debian-Installer (di) zu starten.

Ich verwende Folgendes, um 20.04 zu installieren, dies funktioniert nicht unter 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

Ich habe versucht, die vmlinuz- und initrd.gz-Images aus den 22.04 Ubuntu-CD-ISO-Images zu extrahieren. Aber egal, was ich versuche, es findet nicht einmal ein Root-Dateisystem. Ich vermute, die Images haben keine integrierte Di- und Preseed-Funktionalität mehr?

Wenn es solche Images nicht gibt, wie soll ich dann meine eigenen erstellen? Ich bin nicht sehr glücklich, auf die automatische Installationsmethode umzusteigen, die Canonical durchsetzen will. Unsere gesamte Infrastruktur basiert auf der zuvor erwähnten Methode und wir installieren mehrere Betriebssysteme auf ähnliche Weise.

Antwort1

Ubuntu ist bereits in 20.04 auf Cloud-Init umgestiegen, die Preseed-Methode wurde nur aus Kompatibilitätsgründen beibehalten. Jetzt ist sie endgültig weg.

Sie müssen eine .yml-Datei mit dem Dateinamen erstellen user-data, wiehier angegeben.

Anschließend können Sie in grub.cfg den Pfad zum Verzeichnis angeben, das die Datei enthält.

Ich stelle die Datei direkt auf der ISO-Datei (im Verzeichnis /nocloud/) bereit, Sie können aber genauso gut einen HTTP-Speicherort angeben.

menuentry "Install Ubuntu Server (autoinstall)" {
    set gfxpayload=keep
    linux   /casper/vmlinuz   quiet autoinstall ds=nocloud\;s=/cdrom/nocloud/ ---
    initrd  /casper/initrd
}

Antwort2

Das Vorherige ist seit 20.04 veraltet und wurde in 22.04 entfernt. Ubuntu verwendet jetzt Autoinstall (auch Cloud-Init genannt):https://ubuntu.com/server/docs/install/autoinstall

Wenn Sie ein ausführliches funktionierendes Beispiel benötigen, sehen Sie sich dieses GitHub-Repository an:https://github.com/lavabit/robox

Es verwendet Packer, um Vagrant-Boxen für mehrere Anbieter zu generieren. Seit Ubuntu 20.10 verwendet es die automatische Installation.

verwandte Informationen