Dies ist eine alte Version des Dokuments!


PXE-Server unter CentOS 6.x optimieren

Für die weitgehende Automatisierung der Installation unserer Rechner greifen wir auf ein Installationsscript zurück, welches uns entsprechend unterstützen wird. Diese Datei enthält Angaben zu den einzelnen Installationschritten, die wir bei einer manuellen Installation immer angeben oder anklicken müssten. Im Wesentlichen sind dies Angaben zu:

  • Systemsprache
  • Tastaturlayout
  • Netzwerdefinitionen
  • Installationsquelle
  • Zeitzone
  • Paketauswahl
  • u.s.w.

Eine Variante zur Erstellung eines Installationsscriptes kann die Verwendung der GUI system-config-kickstart sein. Falls noch nicht geschehen, installieren wir das RPM-Paket mittels yum.

 # yum install system-config-kickstart -y

Die GUI starten wir mit Hilfe folgenden Aufrufes.

 # system-config-kickstart

Bildschirmhardcopy : System-Config-Kickstart

Die Konfigurationsdatei für die automatisierte Installation können wir natürlich auch selbst erstellen, oder eine vorhandene Datei weiter bearbeiten. Bei der Installation eines unserer Linux-/CentOS-Host wird im Verzeichnis /root/ jeweils eine Datei mit den ausgewählten Optionen abgelegt. Die Datei hat dabei den Namen /root/anaconda-ks.cfg.

Damit nun unsere Installationen künftig weitgehend ablaufen können, werden wir auf ein kickstart-file erstellen und dies später von unserem Webserver, der auch die Auslieferung der Installations-RPMs vornimmt, ausliefern lassen.

Wir werden also erst einmal im Document-Root ein Verzeichnis für die Kickstart-Dateien anlegen, in dem wir später die Dateien anlegen werden.

 # mkdir kickstart

Anschließen kopieren wir die vorhanden Kickstart-Datei in das Zielverzeichnis.

 # cp /root/anaconda-ks.cfg /data/kickstart/ks_centos60_i386_intra_desktop.cfg

Anschließend bearbeiten wir unsere Konfigurationsdatei und vermerken bei Bedarf Hinweise zu den einzelnen Optionen. Eine ausführliche Beschreibung der einzelnen Optionen finden wir im Red Hat Installation Guide.

 # vim /data/kickstart/ks_centos60_i386_intra_desktop.cfg
/data/kickstart/ks_centos60_i386_intra_desktop.cfg
# Django 2011-11-25 Kickstart-Datei zum automatischen Betanken von Desktop-Intranetmaschinen 
 
# System neu installieren
install
# Systemsprache setzen
lang en_US.UTF-8
# Tastaturlayout definieren
keyboard de-latin1-nodeadkeys
# Definition der Netzwerkeinstellungen
network  --bootproto=dhcp --device=eth0 --onboot=on
# Netzwerkinstallation aus dem eigenen Repository
url --url="http://10.0.0.50/centos/6.0/os/i386"
# Zeitzone setzen
timezone --utc Europe/Berlin
# Root-Passwort verschlüsset vorgeben
rootpw  --iscrypted $6$uFS6SBvSfgaF8L9Z$etsPXUqN1cKuNdBuR$cH1cK$1nD2V0lLD3Pp3Nb3cSUoMDkhaG8AKBzJMdjbgOPnXykKcYMWPfsmAqIPkLvwX7oulNpvQSIaO8/
# Firewall aktivieren und SH freigeben
firewall --service=ssh
# SELinux deaktivieren
selinux --disabled
# Authentifizierungsoptionen für das System definieren
authconfig --enableshadow --passalgo=sha512 --enablefingerprint
# Konfiguration des X Window System überspringen, da Minimalinstallation 
# skipx
# Reboot nach der Installation ausführen
# reboot
# Konfiguration des System Bootloaders
bootloader --location=mbr --driveorder=vda --append="crashkernel=auto quiet" --md5pass=$1$ECJKwraI$F1cKD1cHS3lbSTbUCDFSSXxRf0
 
# Paketauswahl definieren (Minimalinstallation mit zusätzlichen Paketen) 
%packages
@base
@core
@debugging
@basic-desktop
@desktop-debugging
@desktop-platform
@directory-client
@fonts
@input-methods
@internet-browser
@java-platform
@legacy-x
@network-file-system-client
@print-client
@remote-desktop-clients
@server-platform
@server-policy
@x11
mtools
pax
oddjob
sgpio
abrt-gui
certmonger
pam_krb5
krb5-workstation
nscd
pam_ldap
nss-pam-ldapd
libXmu
vim
mc
bind-utils
openssh-clients
wget
telnet
logwatch
 
# Postinstall-Anweisungen
%post
# default-user anlegen
groupadd -g 500 django && useradd django -c "Django" -g 500 -u 500 -m
# linuxcounter Verzeichnis anlegen und script downloaden
mkdir -p /home/django/bin
chown django:django /home/django/bin
cd /home/django/bin
wget -N --no-cache http://linuxcounter.net/script/lico-update.sh
chmod +x /home/django/bin/lico-update.sh

Bei der oben genannten Beispiels-Installation geben wir unter anderem folgende Einstellungen vor:

  • Systemsprache : Englisch
  • Tastaturlayout : deutsch
  • Netzwerk : automatisch per DHCP definiert
  • Installationsquelle : Unser eigener Repository-Server (http://10.0.0.50/centos/6.0/os/i386)
  • Zeitzone : Europe/Berlin
  • Root-Passwort : verschlüsselt hinterlegt
  • Firewall : aktiviert und ssh freigegeben
  • SELinux : deaktiviert
  • Bootloader : grub mit Passwortschutz
  • Paketauswahl : Minimal desktop

Nach der Installation legen wir noch den User django an und holen uns das aktuelle Script zum Updaten des Linux-Counters auf den Clientrechner.

Damit nun beim Laden der Menüdatei bei PXE-Boot das richtige Kickstartfile geladen werden kann, erweitern wir nun die Menü-datei unseres PXE-Bootservers.

 # vim /var/lib/tftpboot/pxelinux.cfg/default

Dort tragen wir beim betreffenden LABEL die Option ks ein.

LABEL 5
   MENU LABEL ^5) CentOS 6.0 (32 Bit) Desktop-Installation (Intranet)
   KERNEL images/centos/6.0/i386/vmlinuz
   APPEND ks=http://10.0.0.50/kickstart/ks_centos60_i386_intra_desktop.cfg initrd=images/centos/6.0/i386/initrd.img ramdisk_size=128000 ksdevice=eth0 ip=dhcp method=http://10.0.0.50/centos/6.0/os/i386

Anschließend starten wir einen unserer Clients im Netz und überprüfen, ob all unsere Optionen richtig gesetzt wurden.

Bildschirmhardcopy : PXE-Auswahlmenü

Bild: DBAN Logo Will man einen Rechner verschrotten oder der wiederverwertung zuführen, stellt sich die wichtige Frage, was passiert mit den Daten, die auf der/den Festplatten gespeichert waren. Ein simples Löschen, steht außer Frage, da das Wiederherstellen der Daten ohne große Mühen, fast jedem gelingt. Sollte man sich trotz aller Vorsichtsmaßnahmen einen Virus eingefangen haben, stellt sich auch meist die Frage, wie bekomme ich diesen wieder los und restlos aus dem System entfernt, wie z.B. dem MBR1).

Zum sicheren Löschen und Vernichten der Inhalte von Datenträgern greifen wir daher auf DBAN2) zurück. DBAN ist ein kleines Festplattenimage, welches Inhalte/Datenstrukturen einer vorhandenen Festplatte erkennt und automatisch löscht.

Bevor wir uns das aktuelle ISO-Image herunter laden, erstellen wir uns im Verzeichnis /var/lib/tftpboot/images/ für DBAN ein eigenes Unterverzeichnis.

 # mkdir -p /var/lib/tftpboot/images/dban

Als nächstes holen wir uns von der Projektseite das aktuelle ISO-Image auf unseren PXE-Boot-Server.

 # wget http://downloads.sourceforge.net/project/dban/dban/dban-2.2.8/dban-2.2.8_i586.iso

Anschließend erstellen wir uns im Verzeichnis /var/lib/tftpboot/images/ für DBAN ein eigenes Unterverzeichnis.

 # mkdir -p /var/lib/tftpboot/images/dban

Dieses ISO-Image mounten wir nun über das Loopback-Device:

 # mount -o loop dban-2.2.8_i586.iso /mnt/data/

Nun können wir das zu bootende DBAN-Image wie auch die Hilfetexte in unser Zielverzeichnis kopieren

 # cp /mnt/data/dban.bzi /var/lib/tftpboot/images/dban/
 # cp /mnt/data/*.txt /var/lib/tftpboot/images/dban/

Ist dies erledigt, können wir das ISO-Image wieder unmounten, da wir dieses nicht mehr benötigen.

 # umount /mnt/data/

Damit wir bei einem PXE-Boot DBAN auch als Option im Bootmenü auftaucht, müssen wir noch die Konfigurationsdatei /var/lib/tftpboot/pxelinux.cfg/default ein klein wenig erweitern. Mit dem Editor unserer Wahl, als z.B. vim fügen wir einfach den folgenden Block am Ende ein.

LABEL A
   MENU LABEL ^A) DBAN - autonuke Festplatten sicher loeschen
   KERNEL images/dban/dban.bzi
   APPEND nuke="dwipe --autonuke" silent nousb vga=785

Die Bezeichnung LABEL passen wir natürlich den eigenen Begebenheiten nach an.

 # vim /var/lib/tftpboot/pxelinux.cfg/default
/var/lib/tftpboot/pxelinux.cfg/default
# Django 2011-11-24
# erstes einfaches Bootmenü 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;36;44        #0824b5 #00000000 std 
menu color sel *                #00000000 #0824b5 *
menu color hotsel 1;7;37;40     #00000000 #999999ff *
menu color unsel 1;36;44        #0824b5 #00000000 std
menu color hotkey 1;36;44       #0824b5 #00000000 std
menu color tabmsg 1;36;44       #ed7500 #00000000 std
menu color cmdline 1;36;44      #0824b5 #00000000 std
menu color timeout_msg 1;36;44  #0824b5 #00000000 std
menu color timeout 1;36;44      #0824b5 #00000000 std
 
# Definition der einzelnen Booteinträge:
# LABEL      : Eindeutige Bezeichnung eines Booteintrages
# MENU LABEL : Aussagekräftige Beschreibung des LABELs, welche im Mootmenü angezeigt werden soll 
# KERNEL     : Definition des zu bootenden Kernel Images
# APPEND     : Definition von Benutzerspezifischen Kerneloptionen
 
LABEL 1
   MENU LABEL ^1) Boot from ^HD (default)
     localboot 0
 
LABEL 2
   MENU LABEL ^2) CentOS 6.x (64 Bit) Installation (Intranet)
   KERNEL images/centos/6/x86_64/vmlinuz
   APPEND ks=http://10.0.0.50/kickstart/ks_centos60_x86_64_intra.cfg initrd=images/centos/6/x86_64/initrd.img ramdisk_size=128000 ksdevice=eth0 ip=dhcp method=http://10.0.0.50/centos/6/os/x86_64
 
LABEL 3
   MENU LABEL ^3) CentOS 6.x (64 Bit) Desktop-Installation (Intranet)
   KERNEL images/centos/6/x86_64/vmlinuz
   APPEND ks=http://10.0.0.50/kickstart/ks_centos60_x86_64_intra_desktop.cfg initrd=images/centos/6/x86_64/initrd.img ramdisk_size=128000 ksdevice=eth0 ip=dhcp method=http://10.0.0.50/centos/6/os/x86_64
 
LABEL 4
   MENU LABEL ^4) CentOS 6.x (64 Bit) Installation (DMZ)
   KERNEL images/centos/6/x86_64/vmlinuz
   APPEND ks=http://10.0.0.50/kickstart/ks_centos60_x86_64_dmz.cfg initrd=images/centos/6/x86_64/initrd.img ramdisk_size=128000 ksdevice=eth0 ip=dhcp method=http://10.0.0.50/centos/6/os/x86_64
 
LABEL 5
   MENU LABEL ^5) CentOS 6.x (32 Bit) Installation (Intranet)
   KERNEL images/centos/6/i386/vmlinuz
   APPEND ks=http://10.0.0.50/kickstart/ks_centos60_i386_intra.cfg initrd=images/centos/6/i386/initrd.img ramdisk_size=128000 ksdevice=eth0 ip=dhcp method=http://10.0.0.50/centos/6/os/i386
 
LABEL 6
   MENU LABEL ^6) CentOS 6.x (32 Bit) Desktop-Installation (Intranet)
   KERNEL images/centos/6/i386/vmlinuz
   APPEND ks=http://10.0.0.50/kickstart/ks_centos60_i386_intra_desktop.cfg initrd=images/centos/6/i386/initrd.img ramdisk_size=128000 ksdevice=eth0 ip=dhcp method=http://10.0.0.50/centos/6/os/i386
 
LABEL 7
   MENU LABEL ^7) CentOS 6.x (32 Bit) Installation (DMZ)
   KERNEL images/centos/6/i386/vmlinuz
   APPEND ks=http://10.0.0.50/kickstart/ks_centos60_i386_intra.cfg initrd=images/centos/6/i386/initrd.img ramdisk_size=128000 ksdevice=eth0 ip=dhcp method=http://10.0.0.50/centos/6/os/i386
 
# Django : 2013-08-25 Fedora 19 angefügt
#LABEL 8
#   MENU LABEL ^8) Fedora 19  (64 Bit) Installation (Intranet)
#   KERNEL images/fedora/19/x86_64/vmlinuz
#   APPEND initrd=images/fedora/19/x86_64/initrd.img ramdisk_size=128000 ip=dhcp method=http://10.0.0.50/fedora/linux/releases/19/Fedora/x86_64/os/
 
# Django : 2014-02-28 Fedora 20 angefügt
LABEL 8
   MENU LABEL ^8) Fedora 20 (32 Bit) Installation (Intranet)
   KERNEL images/fedora/20/i386/vmlinuz
   APPEND initrd=images/fedora/20/i386/initrd.img ramdisk_size=128000 ip=dhcp method=http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/i386/os/
 
LABEL 9
   MENU LABEL ^9) Fedora 20 (64 Bit) Installation (Intranet)
   KERNEL images/fedora/20/x86_64/vmlinuz
   APPEND initrd=images/fedora/20/x86_64/initrd.img ramdisk_size=128000 ip=dhcp method=http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/x86_64/os/
 
# Django : 2014-06-30 Menüpunkt DBAN angefügt
LABEL A
   MENU LABEL ^A) DBAN - autonuke Festplatten sicher loeschen
   KERNEL images/dban/dban.bzi
   APPEND nuke="dwipe --autonuke" silent nousb vga=785

An dem fraglichen rechner führen wir einen Netzwerk-Boot aus.

Bild: PXE Boot-Menü

Hier wählen wir dann den Menüpunkt DBAN - autonuke Festplatten sicher loeschen aus.

Bild: DBAN Bootvorgang

Nachdem DBAN gebootet wurde, erfolgt auch gleich das Löschen. Je nach Festplattengröße kann dies durchaus mehrere Stunden betragen!

Bild: DBAN Festplattenlöschvorgang

Am Ende der erfolgreichen Datenverbichtung, wird dies am Bildschirm angezeigt und man wird gebeten, eine Taste zu drücken oder den Rechner auszuschalten.

Bild: DBAN erfolgreicher Löshvorgang beendet

Links


1)
Master Boot Record
2)
Darik’s Boot And Nuke
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • centos/pxe/pxe_2.1404322461.txt.gz
  • Zuletzt geändert: 02.07.2014 17:34.
  • (Externe Bearbeitung)