PXE
Siehe auch
Der PXE-Server benötigt mindestens TFTP und syslinux, um ein Pre-Boot-Environment zu verteilen. Die ISO-Installationsmedien werden ausgepackt und zur Verteilung auf einen Webserver gelegt (TFTP geht hier nicht).
Achtung
Eine VM, die per PXE installiert wird, benötigt mit CentOS 7 mind. 1.5 GB, mit CentOS 8 mind. 2 RAM - ansonsten erhält man nach dem Laden des Pre-Boot Environments die Fehlermeldungen „/dev/root does not exist“ und „… write erorr: No space left on device“ (womit der Hauptspeicher gemeint ist).
Links
Installation und Konfiguration
Vorhandenen DHCP-Server um Einträge für PXE erweitern - im Beispiel wird auf dem ISC DHCP-Server der zu suchende PXE-Server mit der IP 10.80.32.58 angegeben:
# PXE: Server to request the bootfile from
next-server 10.80.32.58;
filename "pxelinux.0";
syslinux installieren - dieses Paket liefert ein minimales Betriebssystem mit einem Auswahlmenü für PXE:
yum -y install syslinux
Boot-Dateien auf dem TFTP-Server bereitstellen. Ein ln -s
funktioniert hier nicht:
ln /usr/share/syslinux/chain.c32 /var/lib/tftpboot
ln /usr/share/syslinux/mboot.c32 /var/lib/tftpboot
ln /usr/share/syslinux/memdisk /var/lib/tftpboot
ln /usr/share/syslinux/menu.c32 /var/lib/tftpboot
ln /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
ln /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot
ISOs zur Verfügung stellen
CentOS
Ein zu verteilendes ISO-File holen und mounten:
mkdir -p /mnt/centos-iso
wget http://mirror.nsc.liu.se/centos-store/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso --output-document=/tmp/CentOS-7-x86_64-Minimal-1708.iso
mount -o loop /tmp/CentOS-7-x86_64-Minimal-1708.iso /mnt/centos-iso
Boot-Images (hier die BIOS- und nicht die UEFI-Version) aus den ISO-Files holen und an die richtige Stelle legen:
mkdir -p /var/lib/tftpboot/isolinux/CentOS-7-x86_64-Minimal-1708
cp -a /mnt/centos-iso/isolinux/initrd.img /var/lib/tftpboot/isolinux/CentOS-7-x86_64-Minimal-1708/
cp -a /mnt/centos-iso/isolinux/vmlinuz /var/lib/tftpboot/isolinux/CentOS-7-x86_64-Minimal-1708/
restorecon -Fvr /var/lib/tftpboot/
Das ausgepackte ISO in die DocumentRoot eines vorhandenen oder auf dem PXE/Deployment-Server zu installierendem Webserver legen. Wichtig: die versteckte .treeinfo
-Datei muss ebenfalls mitkopiert werden.
mkdir -p /var/www/html/iso/CentOS-7-x86_64-Minimal-1708
cp -a /mnt/centos-iso/* /var/www/html/iso/CentOS-7-x86_64-Minimal-1708/
cp /mnt/centos-iso/.discinfo /mnt/centos-iso/.treeinfo /var/www/html/iso/CentOS-7-x86_64-Minimal-1708/
restorecon -Fvr /var/www/html/
Aufräumen:
umount /mnt/centos-iso
rm -f /tmp/CentOS-7-x86_64-Minimal-1708.iso
Ubuntu
Ein zu verteilendes ISO-File holen und mounten:
cd /tmp/
wget https://releases.ubuntu.com/20.10/ubuntu-20.10-live-server-amd64.iso
mkdir -p /mnt/ubuntu-iso
mount -o loop /tmp/ubuntu-20.10-live-server-amd64.iso /mnt/ubuntu-iso/
Boot-Images (hier die BIOS- und nicht die UEFI-Version) aus den ISO-Files holen und an die richtige Stelle legen:
mkdir -p /var/lib/tftpboot/isolinux/ubuntu-20.10-live-server-amd64
cp -a /mnt/ubuntu-iso/casper/vmlinuz /var/lib/tftpboot/isolinux/ubuntu-20.10-live-server-amd64/
cp -a /mnt/ubuntu-iso/casper/initrd /var/lib/tftpboot/isolinux/ubuntu-20.10-live-server-amd64/
restorecon -Fvr /var/lib/tftpboot/
Das ISO in die DocumentRoot eines vorhandenen oder auf dem PXE/Deployment-Server zu installierendem Webserver legen.
mkdir -p /var/www/html/iso/ubuntu-20.10-live-server-amd64
cp -a /tmp/ubuntu-20.10-live-server-amd64.iso /var/www/html/iso/ubuntu-20.10-live-server-amd64/
restorecon -Fvr /var/www/html/
Aufräumen:
umount /mnt/ubuntu-iso
rm -f /tmp/ubuntu-20.10-live-server-amd64.iso
Um das Setup der Maschine zu automatisieren (autoinstall), braucht es eine user-data
sowie eine meta-data
Datei. Weitere Informationen dazu findet man unter: https://ubuntu.com/server/docs/install/autoinstall-reference