Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
centos:pxe:pxe_1 [25.08.2013 09:59. ] – [Order und Dateien anlegen] Rechtschreibkorrektur(en) 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:// | ||
+ | |||