Schritte zum Erstellen eines Kickstart-Servers unter Ubuntu 14.04

Schritte zum Erstellen eines Kickstart-Servers unter Ubuntu 14.04

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 %packageder Kickstart-Datei einen Abschnitt hinzu ks.cfgund hängen Sie am Ende der ks.cfgDatei etwa Folgendes an.

%packages
@ ubuntu-server
openssh-server
ftp
build-essential

Dadurch wird das Ubuntu-Server-„Paket“ installiert und die openssh-serverPakete ftpund 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.cfgund preseed/file=/cdrom/ks.preseedzur Anfügezeile hinzu. Du kannst die Wörter quietund 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.

verwandte Informationen