netbootxyz

Änderungsstand: 2020-03-12

Docker netbootxyz:

Dieser Guide ist für fortgeschrittene Anwender, die schon einen funktionierenden DHCP-Server betreiben. Eigentlich sollte er unter Docker-Compose erscheinen. Da aber der Schwerpunkt auf PXE liegt und das doch schon einige Vorkenntnisse benötigt, habe ich micht entschieden, es hier zu veröffentlichen.

Es wird ein Netboot-Docker erstellt, welcher eine große Vielfalt an Distibutionen und Tools beherbergt und auf welche man über PXE zugreifen kann. Das Ergebnis kann sich sehen lassen und ist meines Erachtens den Aufwand wert. Als Vorraussetzung sollte dieser Guide schon einmal komplett abgearbeitet werden und letztendlich funktionieren, damit die folgenden Schritte Erfolg bringen.

Infos zur Konfiguration meines Umfeldes:

  • Mein erstelltes OMV5-Verzeichnis mit Schreibrechte ALLE (betrifft demzufolge auch tftp-root): /srv/dev-disk-by-label-SSD/tftpboot.
  • Die Portangabe im Script wurden so gewählt, damit alle meine Docker in den Guides funktionieren, ohne sich gegenseitig zu behindern. Achtung! Zur weiteren Bearbeitung darauf achten, dass der HTTP-Port auf 8084 liegt, da phpMyAdmin schon 8080 belegt!

Wenn noch nicht geschehen, den Hauptordner für die Compose-Dateien erstellen:

sudo mkdir /home/dockervolumes

Nun folgenden Befehl im Terminal eingeben ( Ordner wird erstellt und die *.yml wird dort geöffnet).

sudo mkdir /home/dockervolumes/netbootxyz && cd /home/dockervolumes/netbootxyz && sudo nano docker-compose.yml
---
version: "2"
services:
  netbootxyz:
    image: linuxserver/netbootxyz
    container_name: netbootxyz
    environment:
      - PUID=1000
      - PGID=100
    volumes:
      - /srv/dev-disk-by-label-SSD/tftpboot/pxe:/config
      - /srv/dev-disk-by-label-SSD/tftpboot/pxeassets:/assets
    ports:
      - 3000:3000
      - 70:69/udp
      - 8084:80
    restart: unless-stopped

Speichern mit Strg-x, y, Enter

Quelle: https://hub.docker.com/r/linuxserver/netbootxyz

Anschließend die „yml“ starten mit

docker-compose up -d

! Darauf achten, dass man sich noch im /home/dockervolumes/netbootxyz-Verzeichnis befindet.

Das Dockerimage wird heruntergeladen und der Docker mit der eingetragenen Konfiguration gestartet.

Fertig.

Jetzt ändern wir einen Eintrag im DHCP-Server (Zeile 18 Stilllegen (#) und Zeile 19 hinzufügen). Zeile 20 wäre demzufolge der Eintrag für das Uefi-Boot. Es kann aber immer nur eines von beiden aktiv sein.

nano /etc/dhcp/dhcpd.conf
authoritative;
ddns-update-style none;
allow booting;
allow bootp;
option domain-name "fritz.box";
option domain-name-servers 192.168.252.1,
#authoritative;
default-lease-time 600;
max-lease-time 7200;
 
subnet 192.168.252.0 netmask 255.255.255.0 {
  range dynamic-bootp 192.168.252.200 192.168.252.253;
  #range 192.168.252.200 192.168.252.253;
  option broadcast-address 192.168.252.255;
  option routers 192.168.252.1;
  option domain-name-servers 192.168.252.1;
  next-server 192.168.252.49;
#  filename "pxelinux.0";
  filename "/pxe/menus/netboot.xyz-undionly.kpxe";  # Legacy-Bios-Boot
#  filename "/pxe/menus/netboot.xyz.efi";            # Uefi-Bios-Boot
}

Strg-x, y, Enter

/etc/init.d/isc-dhcp-server stop 
/etc/init.d/isc-dhcp-server start 
systemctl restart isc-dhcp-server

Wenn wir jetzt das PXE starten, erscheint das netbios.xyz-Menu und alle dort angezeigten Sachen werden jeweils einzeln, bei Anwahl, über das Internet geladen. Für Leute mit einer schnellen Internetleitung eine super Sache. Somit ist man jedenfalls immer aktuell, was die Distributionen angeht, weil diese immer gepflegt werden. Und die Auswahl is riesig…

Ich möchte alles benötigte local auf meinem Server betreiben. Nur funktioniert das nicht ganz so, wie ich das möchte. Wer es selbst versuchen möchte, hier der Aufruf der Weboberfläche. Leider sind die Dokumentationen zum Thema „Selfhosting“ sehr eingeschränkt und mir fehlt die Zeit dafür, mich einzulesen. Wer es dennoch versuchen möchte, kann in der Weboberfläche weitermachen.

Aufrufen der Weboberfläche im Browser:

Server-IP-Adresse:3000