Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| centos:pxe:pxe_1 [24.11.2011 08:50. ] – angelegt django | centos:pxe:pxe_1 [22.07.2019 15:00. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== PXE-Server unter CentOS 6.x einrichten ====== | ||
| + | Im folgenden Kapitel befassen wir uns eingehender mit der Konfiguration unseres PXE-Bootservers. | ||
| + | |||
| + | ===== Grund-Konfiguration ===== | ||
| + | ==== Order und Dateien anlegen ==== | ||
| + | Mit Unterstützung des TFTP-Servers und dem xinet-daemon muss dem anfragendem Client-System ein minimales Betriebssystem mit einem Auswahlmenü über das Netzwerk zur Verfügung gestellt werden. Diese Minimalanforderung werden wir mun im ersten Schritt umsetzen. Hierzu kopieren wir aus dem Verzeichnis // | ||
| + | * **chain.c32** | ||
| + | * **mboot.c32** | ||
| + | * **memdisk** | ||
| + | * **menu.c32** | ||
| + | * **pxelinux.0** | ||
| + | * **vesamenu.c32** | ||
| + | |||
| + | # cp -a / | ||
| + | |||
| + | Als nächstes erstellen wir uns noch einen Odrner, in dem die Bootmenüs abgelegt werden, die später beim PXE-Boot dem Client präsentiert werden sollen. | ||
| + | # mkdir / | ||
| + | |||
| + | Im Anschluss daran legen wir uns noch die Verzeichnisse für die Image-Dateien, | ||
| + | * **CentOS 5.7 - i386** | ||
| + | * **CentOS 6.0 - i386** | ||
| + | * **CentOS 6.0 - x86_64** | ||
| + | |||
| + | - < | ||
| + | - < | ||
| + | - < | ||
| + | |||
| + | Als abschließenden Punkt werden wir nun in die gerade angelegten und entsprechenden Verzeichnisse jeweils das zugehörige **initrd.img** und **vmlinuz** aus dem Repository laden. | ||
| + | - < | ||
| + | - < | ||
| + | - < | ||
| + | |||
| + | ==== einfaches Bootmenü erstellen ==== | ||
| + | Für die Auswahl der unterschiedlichen Systeme, die wir später installieren wollen, benötigen wir noch ein passendes Bootmenü. Dieses Menü wird mit Hilfe der Datei // | ||
| + | # vim / | ||
| + | <file bash / | ||
| + | # Django 2011-11-24 | ||
| + | # erstes einfaches Bootmenü für PXE-Boot | ||
| + | |||
| + | # Einbinden des User-Interface-Module menu.c32 | ||
| + | default menu.c32 | ||
| + | # starten des Standardeintrages nach 10 Sekunden | ||
| + | timeout 100 | ||
| + | # [0] Boot-Prompt ausblenden [1] Boot-Prompt standardmäßig angezeigen | ||
| + | prompt 0 | ||
| + | # [0] Öffnen des Boot mit ESC ermöglichen [1] Funktion deaktivieren. | ||
| + | noescape 0 | ||
| + | |||
| + | # Definition der Überschrift unseres Bootmenüs | ||
| + | menu title *** PXE Boot-Auswahl Menue *** | ||
| + | # Definition einer Hintergrundgraphik für das Bootmenü (Größe: 640x480 Format: PNG) | ||
| + | # menu background bootgraphik.png | ||
| + | |||
| + | # Definition der einzelnen Booteinträge: | ||
| + | # LABEL : Eindeutige Bezeichnung eines Booteintrages | ||
| + | # MENU LABEL : Aussagekräftige Beschreibung des LABELs, welche im Mootmenü angezeigt werden soll | ||
| + | # KERNEL | ||
| + | # APPEND | ||
| + | |||
| + | LABEL 1 | ||
| + | MENU LABEL ^1) Boot from ^HD (default) | ||
| + | | ||
| + | |||
| + | LABEL 2 | ||
| + | MENU LABEL ^2) Installation von CentOS 6.0 (64 Bit) | ||
| + | | ||
| + | | ||
| + | |||
| + | LABEL 3 | ||
| + | MENU LABEL ^3) Installation von CentOS 6.0 (32 Bit) | ||
| + | | ||
| + | | ||
| + | |||
| + | LABEL 4 | ||
| + | MENU LABEL ^4) Installation von CentOS 5.7 (32 Bit) | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | ==== DHCP-Server anpassen ==== | ||
| + | Damit der TFTP-Server vom [[centos: | ||
| + | |||
| + | # vim / | ||
| + | |||
| + | Folgende Zeilen tragen wir nach: | ||
| + | < | ||
| + | # Django : 2011-11-22 bootflag für PXE-Boot setzen | ||
| + | allow booting; | ||
| + | # Django : 2011-11-22 bootp-flag setzen für Antwortmöglichkeit auf bootp-Anfragen der Clients | ||
| + | allow bootp; | ||
| + | # Django : 2011-11-22 Adresse des TFTP-Servers für PXE-Boot setzen | ||
| + | next-server 10.0.0.50; | ||
| + | # Django : 2011-11-22 Dateinamen auf intitiale Boot-Datei setzen | ||
| + | filename " | ||
| + | </ | ||
| + | Somit ergibt sich eine vorläufige Gesamtkonfigurationsdatei unseres DHCP-Servers. | ||
| + | <file bash / | ||
| + | subnet 10.0.10.0 netmask 255.255.255.192 { | ||
| + | |||
| + | option routers | ||
| + | option subnet-mask | ||
| + | |||
| + | option domain-name | ||
| + | option domain-search | ||
| + | option domain-name-servers | ||
| + | |||
| + | # Django : 2011-11-22 bootflag für PXE-Boot setzen | ||
| + | allow booting; | ||
| + | # Django : 2011-11-22 bootp-flag setzen für Antwortmöglichkeit auf bootp-Anfragen der Clients | ||
| + | allow bootp; | ||
| + | # Django : 2011-11-22 Adresse des TFTP-Servers für PXE-Boot setzen | ||
| + | next-server 10.0.0.50; | ||
| + | # Django : 2011-11-22 Dateinamen auf intitiale Boot-Datei setzen | ||
| + | filename " | ||
| + | |||
| + | option time-offset | ||
| + | option ntp-servers | ||
| + | |||
| + | range dynamic-bootp 10.0.10.50 10.0.10.62; | ||
| + | default-lease-time 21600; | ||
| + | max-lease-time 43200; | ||
| + | |||
| + | } | ||
| + | |||
| + | host vml010006 | ||
| + | { hardware ethernet 52: | ||
| + | fixed-address 10.0.10.6; | ||
| + | } | ||
| + | </ | ||
| + | Zur Aktivierung unserer Konfigurationsänderungen starten wir unseren DHCP-Server nun einmal durch. | ||
| + | # service dhcpd restart | ||
| + | |||
| + | | ||
| + | | ||
| + | |||
| + | ==== Paketfilter anpassen ==== | ||
| + | Damit unser PXE-Boot-Server die BootTP aus dem Netz be- und verarbeiten kann, werden wir nun den Paketfilter noch erweitern und anpassen. | ||
| + | |||
| + | Als erstes überprüfen wir unsere aktuelle iptables-Regeln. | ||
| + | # iptables -L | ||
| + | < | ||
| + | target | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | REJECT | ||
| + | |||
| + | Chain FORWARD (policy ACCEPT) | ||
| + | target | ||
| + | REJECT | ||
| + | |||
| + | Chain OUTPUT (policy ACCEPT) | ||
| + | target | ||
| + | </ | ||
| + | Die Konfigurationsdatei unseres Paketfilters passen wir nun wie folgt an. | ||
| + | # vim / | ||
| + | <file bash / | ||
| + | # Firewall configuration written by system-config-firewall | ||
| + | # Manual customization of this file is not recommended. | ||
| + | *filter | ||
| + | :INPUT ACCEPT [0:0] | ||
| + | :FORWARD ACCEPT [0:0] | ||
| + | :OUTPUT ACCEPT [0:0] | ||
| + | -A INPUT -m state --state ESTABLISHED, | ||
| + | -A INPUT -p icmp -j ACCEPT | ||
| + | -A INPUT -i lo -j ACCEPT | ||
| + | -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT | ||
| + | # Django : 2011-11-16 htpp für Apache Webserver freigeschaltet | ||
| + | -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT | ||
| + | # | ||
| + | # Django : 2011-11-16 Freischalten des TFTP-servers | ||
| + | -A INPUT -m state --state NEW -m udp -p udp --dport 69 -j ACCEPT | ||
| + | # | ||
| + | # Django : 2011-11-22 BootTP Server und Client freigeschaltet | ||
| + | -A INPUT -m state --state NEW -m udp -p udp --dport 67 -j ACCEPT | ||
| + | -A INPUT -m state --state NEW -m udp -p udp --dport 68 -j ACCEPT | ||
| + | # | ||
| + | -A INPUT -j REJECT --reject-with icmp-host-prohibited | ||
| + | -A FORWARD -j REJECT --reject-with icmp-host-prohibited | ||
| + | COMMIT | ||
| + | </ | ||
| + | Anschließend starten wir den Paketfilter 1x durch. | ||
| + | # service iptables restart | ||
| + | < | ||
| + | iptables: Flushing firewall rules: | ||
| + | iptables: Setting chains to policy ACCEPT: filter | ||
| + | iptables: Unloading modules: | ||
| + | iptables: Applying firewall rules: | ||
| + | iptables: Loading additional modules: ip_conntrack_tftp ip_[ OK ] | ||
| + | </ | ||
| + | Überprüfen wir anschließend unseren Paketfilter, | ||
| + | # iptables -L | ||
| + | < | ||
| + | Chain INPUT (policy ACCEPT) | ||
| + | target | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | ACCEPT | ||
| + | LOG all -- anywhere | ||
| + | REJECT | ||
| + | |||
| + | Chain FORWARD (policy ACCEPT) | ||
| + | target | ||
| + | REJECT | ||
| + | |||
| + | Chain OUTPUT (policy ACCEPT) | ||
| + | target | ||
| + | </ | ||
| + | |||
| + | ==== Clienttest ==== | ||
| + | Starten wir nun einen neuen vHOST dann wird uns ein entsprechends Bootmenü angezeigt. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Zur Versorgung unserer Maschinen reicht dies natürlich, die Optik ist natürlich nicht gerade umwerfend. | ||
| + | |||
| + | ===== erweiterte Konfiguration ===== | ||
| + | ==== graphisches Bootmenü erstellen ==== | ||
| + | Wie bei der [[centos: | ||
| + | |||
| + | Wir bearbeiten also wieder unsere Menüdatei // | ||
| + | # vim / | ||
| + | |||
| + | <file bash / | ||
| + | # Django 2011-11-24 | ||
| + | # erweitertes graphisches Menü für PXE-Boot | ||
| + | |||
| + | # Einbinden des User-Interface-Module vesamenu.c32 | ||
| + | default vesamenu.c32 | ||
| + | # starten des Standardeintrages nach 10 Sekunden | ||
| + | timeout 100 | ||
| + | # [0] Boot-Prompt ausblenden [1] Boot-Prompt standardmäßig angezeigen | ||
| + | prompt 0 | ||
| + | # [0] Öffnen des Boot mit ESC ermöglichen [1] Funktion deaktivieren. | ||
| + | noescape 0 | ||
| + | |||
| + | # Definition der Überschrift unseres Bootmenüs | ||
| + | menu title *** PXE Boot-Auswahl Menue *** | ||
| + | # Definition einer Hintergrundgraphik für das Bootmenü (Größe: 640x480 Format: PNG) | ||
| + | menu background bootgraphik.png | ||
| + | |||
| + | menu color title 1; | ||
| + | menu color sel * #00000000 #0824b5 * | ||
| + | menu color hotsel 1; | ||
| + | menu color unsel 1; | ||
| + | menu color hotkey 1; | ||
| + | menu color tabmsg 1; | ||
| + | menu color cmdline 1; | ||
| + | menu color timeout_msg 1; | ||
| + | menu color timeout 1; | ||
| + | |||
| + | # Definition der einzelnen Booteinträge: | ||
| + | # LABEL : Eindeutige Bezeichnung eines Booteintrages | ||
| + | # MENU LABEL : Aussagekräftige Beschreibung des LABELs, welche im Mootmenü angezeigt werden soll | ||
| + | # KERNEL | ||
| + | # APPEND | ||
| + | |||
| + | LABEL 1 | ||
| + | MENU LABEL ^1) Boot from ^HD (default) | ||
| + | | ||
| + | |||
| + | LABEL 2 | ||
| + | MENU LABEL ^2) Installation von CentOS 6.0 (64 Bit) | ||
| + | | ||
| + | | ||
| + | |||
| + | LABEL 2 | ||
| + | MENU LABEL ^3) Installation von CentOS 6.0 (32 Bit) | ||
| + | | ||
| + | | ||
| + | |||
| + | LABEL 2 | ||
| + | MENU LABEL ^4) Installation von CentOS 5.7 (32 Bit) | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | |||
| + | Als Graphik verwenden wir eine passende selbstgemachte Graphik mit den Abmessungen **640 x 480** und speichern diese im Format **PNG** ab. | ||
| + | |||
| + | ==== Clienttest ==== | ||
| + | Starten wir nun erneut einen neuen vHOST, dann wird uns ein entsprechends Bootmenü angezeigt. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Im Vergleich zur reinen Textvariante sieht dies schon wesentlich ansprechender und für das Einsatzgebiet individueller aus. | ||
| + | |||
| + | ==== automatische Installation ==== | ||
| + | Einen weiteren Schritt zur Komfortablen und automatisierten Installation werden wir mit Hilfe einer Kickstartdatei vornehmen. Wie dies geht, ist im Kapitel [[centos: | ||
| + | ====== Links ====== | ||
| + | * **[[centos: | ||
| + | * **[[wiki: | ||
| + | * **[[http:// | ||
| + | |||