Benötigen Sie eine Schritt-für-Schritt-Anleitung zum Erstellen eines Kickstart-Servers unter Ubuntu 14.04 LTS
Antwort1
Dies ist eine gute Schritt-für-Schritt-Anleitung
Kurz zusammengefasst; verwenden Sie Isohybrid, nachdem Sie das benutzerdefinierte ISO neu gepackt haben
Um diesen USB-Stick zu erstellen, habe ich eine virtuelle Maschine mit installiertem Ubuntu 14.04 verwendet. Das Ziel hier ist, einen bootfähigen USB-Stick zu erstellen, bei dem keine Auswahl von Dingen wie Tastaturlayout, Sprache usw. erforderlich ist. Wir möchten eine automatische Installation eines Ubuntu-Servers.
Wir müssen das Ubuntu-Image erhalten, das wir für unsere Installation anpassen werden.
wget http://releases.ubuntu.com/14.04/ubuntu-14.04.2-server-amd64.iso
Wir benötigen einen Ort, an dem wir die entpackte ISO-Datei mounten können.
sudo mkdir -p /mnt/iso
Nachdem wir einen Einhängepunkt dafür erstellt haben, müssen wir es nun einhängen. Dadurch werden die Dateien, die im ISO gespeichert sind, verfügbar. Leider sind die Dateien schreibgeschützt.
. sudo mount -o loop ubuntu-14.04.2-server-amd64.iso /mnt/iso
Um die Dateien zu ändern, müssen wir sie in ein Verzeichnis kopieren, in dem wir sie ändern können. Also erstellen wir das Verzeichnis und kopieren dann die Dateien dorthin.
sudo mkdir -p /opt/ubuntuiso sudo cp -rT /mnt/iso /opt/ubuntuiso
Unser neues Arbeitsverzeichnis wird /opt/ubuntuiso sein.
cd /opt/ubuntuiso
Um während des Installationsvorgangs nicht zur Sprachauswahl aufgefordert zu werden, müssen wir angeben, welche Sprache wir verwenden möchten. In diesem Fall wird „en“ verwendet, da ich Englisch spreche.
echo en | sudo tee isolinux/lang
Jetzt erstellen wir die Kickstart-Datei mit einem Programm namens system-config-kickstart. Stellen Sie also sicher, dass es installiert ist, und führen Sie es dann aus.
sudo apt-get install system-config-kickstart system-config-kickstart
Speichern Sie die Datei dann über die GUI in
/opt/ubuntuiso/
. Dies sollte eine Datei namens ks.cfg speichern. Meine ks.cfg sieht wie folgt aus#Generated by Kickstart Configurator #platform=AMD64 or Intel EM64T #System language lang en_US #Language modules to install langsupport en_US #System keyboard keyboard us #System mouse mouse #System timezone timezone America/Denver #Root password rootpw --disabled #Initial user user ubuntu --fullname "ubuntu" --iscrypted --password $1$MQ0zGB4W$pwjX8nolgr2RJch2Omamt. #Reboot after installation reboot #Use text mode install text #Install OS instead of upgrade install #Use CDROM installation media cdrom #System bootloader configuration bootloader --location=mbr #Clear the Master Boot Record zerombr yes #Partition clearing information clearpart --all --initlabel #Disk partitioning information part /boot --fstype ext2 --size 100 --asprimary part swap --recommended part / --fstype ext4 --size 1 --grow #System authorization infomation auth --useshadow --enablemd5 #Network information network --bootproto=dhcp --device=eth0 #Firewall configuration firewall --disabled #Do not configure the X Window System skipx %post #!/bin/bash exec < /dev/tty6 > /dev/tty6 chvt 6 echo 'Acquire::http { Proxy "http://10.2.4.27"; };' > /etc/apt/apt.conf.d/02proxy apt-get update apt-get -y upgrade apt-get -y dist-upgrade apt-get install -y git ansible openssh-server vim chvt 1
Im Postscript (alles nach ) wird ein wenig gekapert
%post
. Die Zeile, die mit exec beginnt, und die folgende Zeile (chvt 6
) zwingen das Installationsprogramm, die Ausgabe der Befehle anzuzeigen, die danach ausgeführt werden. Der Grund dafür ist, dass sich der Ladebalken während der Installation nicht bewegt und es so aussehen kann, als ob das Installationsprogramm hängen geblieben wäre. Die folgende Zeile, die den Proxy ausführt, ist für den Apt-Cache in unserem lokalen Netzwerk. Die letzte Zeile (chvt 1
) gibt die Ausgabe an das Hauptinstallationsprogramm zurück.Jetzt müssen wir die Preseed-Datei hinzufügen, damit wir weitere Fragen vermeiden können.
echo 'd-i partman/confirm_write_new_label boolean true d-i partman/choose_partition \ select Finish partitioning and write changes to disk d-i partman/confirm boolean true' | sudo tee ks.preseed
Jetzt müssen wir dem Installer mitteilen, welche Dateien wir gerade gespeichert haben. Dazu müssen wir isolinux/txt.cfg ändern. Zuerst müssen wir die Datei beschreibbar machen.
sudo chmod +w isolinux/txt.cfg
Dann müssen wir die Anfügezeile des folgenden Abschnitts ersetzen
label install menu label ^Install Ubuntu Server kernel /install/vmlinuz append file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --
Ersetzen Sie die Anfügezeile durch
append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --
Speichern und beenden Sie die Datei. Wir müssen außerdem sicherstellen, dass wir die Datei wieder in ihren ursprünglichen Zustand versetzen, also die Schreibberechtigungen entfernen.
sudo chmod -w isolinux/txt.cfg
Erstellen Sie jetzt die neue ISO-Datei, die wir zum Erstellen des bootfähigen USB-Sticks verwenden.
sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso
Um das bootfähige ISO für einen USB-Stick fertigzustellen, müssen wir es hybridisieren.
sudo isohybrid /opt/autoinstall.iso
Nach der Hybridisierung können wir es auf das USB-Laufwerk übertragen. Das USB-Laufwerk in meiner virtuellen Maschine wird in angezeigt
/dev/sdb
, aber Sie müssen die richtige Bezeichnung verwenden, ersetzen Sie also X entsprechend. Stellen Sie sicher, dass das USB-Laufwerk nicht gemountet ist.sudo umount /dev/sdX
Und zum Schluss schieben Sie die ISO-Datei auf das USB-Laufwerk. (Bitte beachten Sie, dass dadurch Daten auf dem Zielgerät zerstört werden. Stellen Sie sicher, dass Sie wissen, was Sie tun.)
sudo dd if=/opt/autoinstall.iso of=/dev/sdX
Jetzt sollte Ihr USB-Laufwerk für die Installation bereit sein!
Antwort2
Die Komplettlösung:
Remastern Sie eine CD, d. h. laden Sie eine nicht-grafische Ubuntu-Installations-ISO (Server oder alternative Installations-CD) herunter und mounten Sie sie. In diesem Fall Ihre Ubuntu 14 ISO.
sudo mkdir -p /mnt/iso
sudo mount -o loop ubuntu.iso /mnt/iso
Kopieren Sie die relevanten Dateien in ein anderes Verzeichnis
sudo mkdir -p /opt/ubuntuiso
sudo cp -rT /mnt/iso /opt/ubuntuiso
Verhindern, dass das Menü zur Sprachauswahl angezeigt wird
cd /opt/ubuntuiso
echo en | sudo tee isolinux/lang
Verwenden Sie ein GUI-Programm, um eine Kickstart-Datei mit dem Namen hinzuzufügenks.cfg
sudo apt-get install system-config-kickstart
system-config-kickstart # save file to ks.cfg
Um Pakete für die Installation hinzuzufügen, fügen Sie %package
der Kickstart-Datei einen Abschnitt hinzu ks.cfg
und hängen Sie am Ende der ks.cfg
Datei etwa Folgendes an.
%packages
@ ubuntu-server
openssh-server
ftp
build-essential
Dadurch wird das Ubuntu-Server-„Paket“ installiert und die openssh-server
Pakete ftp
und werden hinzugefügt build-essential
.
Fügen Sie eine Preseed-Datei hinzu, um andere Fragen zu unterdrücken
echo 'd-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition \
select Finish partitioning and write changes to disk
d-i partman/confirm boolean true' | sudo tee ks.preseed
Richten Sie die Boot-Befehlszeile so ein, dass die Kickstart- und Preseed-Dateien verwendet werden
sudo nano isolinux/txt.cfg
Suchen nach
label install
menu label ^Install Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --
füge ks=cdrom:/ks.cfg
und preseed/file=/cdrom/ks.preseed
zur Anfügezeile hinzu. Du kannst die Wörter quiet
und entfernen vga=788
. Es sollte so aussehen
append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --
Erstellen Sie nun ein neues ISO
sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso
Das ist alles. Sie erhalten eine CD, die beim Booten ein Ubuntu-System installiert, ohne dass eine Eingabe erforderlich ist.
Optimieren Sie die ks.cfg- und Preseed-Dateien nach Bedarf.