Unterschiede zwischen den Revisionen 1 und 57 (über 56 Versionen hinweg)
Revision 1 vom 2012-03-01 20:42:40
Größe: 3218
Kommentar:
Revision 57 vom 2012-07-31 15:09:12
Größe: 14976
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 3: Zeile 3:
<<TableOfContents(3)>> <<TableOfContents(4)>>

/!\ '''Achtung:''' Diese Seite ist noch nicht vollständig!!!
Zeile 7: Zeile 9:
Sofern der erste Virtualisierungs-Server noch ein ungenutztes Netzwerk-Interface hat, empfiehlt es sich, der VM {{disklserver.intern}}} ein eigenes Netzwerk-Interface (durch Bridging) bereit zu stellen.

=== Virtuelle Maschine einrichten ===

Das Debian Edu Minimalsystem {{{disklserver.intern}}} installieren wir über die PXE-Installationsumgebung von Debian Edu.
Sofern der erste Virtualisierungs-Server noch ein ungenutztes Netzwerk-Interface hat, empfiehlt es sich, der VM {{{disklserver.intern}}} ein eigenes Netzwerk-Interface (durch Bridging) bereit zu stellen.

=== Installation ===

Das Debian Edu Minimalsystem {{{disklserver.intern}}} installieren wir über die PXE-Installationsumgebung von Debian Edu / Skolelinux.
Zeile 19: Zeile 21:
      * Name: {{disklserver.intern_sda}}       * Name: {{{disklserver.intern_sda}}}
Zeile 26: Zeile 28:
    * Neue VM lokale (auf {{{localhost (QEMU)}}}) erstellen
      * Name: disklserver.intern
      * Starten vom Netzwerk (PXE)
      * Betriebssystem: Linux, Debian squeeze
      * Speicher: 1-4Gb
      * CPUs: 2
      * Speicher wählen: Klick auf ''Durchsuchen'': {{{vm-slow-vg}}} -> {{{disklserver00.intern_sda}}}
      * erw Opt: specify shared device name:br1 (alternativ: eine eigene Netzwerkschnittstelle als Bridge bereit stellen und dann diese Bridge, z.Bsp. {{{br2}}, hier auswählen)
    * Die VM {{{disklserver.intern}}} wird jetzt für die Installation starten. Diesen Startvorgang jetzt abbrechen.
    * Die folgenden Änderungen noch an der VM-Konfiguration von {{{disklserver.intern}}} vornehmen. Hierfür muss die VM-Konfiguration aufgerufen werden.
      * MAC-Adresse ermitteln, mittels {{{virt-manager}}}, unter Details der VM, MAC-Adresse notieren für Debian Edu's GOsa².
      * Unter den Boot Optionen der VM für den nächsten Start nochmal das Booten vom Netzwerk (PXE) festlegen
      * VM {{{disklserver.intern}}} immer booten, wenn der Virtualisierungs-Server (bzw. {{{libvirtd}}}) startet
    * Vor der Installation von {{{disklserver.intern}}}:
      * GOsa² auf TJENER: System (Typ: Server) anlegen für {{{disklserver.intern}}} (standardmäßig: 10.0.2.9), DHCP (10.0.0.0, DNS aktivieren

==== VM erstellen ====

  * Neue VM lokal (auf {{{localhost (QEMU)}}}) erstellen
    * Name: disklserver.intern
    * Starten vom Netzwerk (PXE)
    * Betriebssystem: Linux, Debian squeeze
    * Speicher: 1-4Gb
    * CPUs: 2
    * Speicher wählen: Klick auf ''Durchsuchen'': {{{vm-slow-vg}}} -> {{{disklserver.intern_sda}}}
    * erw Opt: specify shared device name:br1 (alternativ: eine eigene Netzwerkschnittstelle als Bridge bereit stellen und dann diese Bridge, z.Bsp. {{{br2}}}, hier auswählen)
    * Klick auf ''Fertigstellen'', Installation startet

==== VM installieren ====

Nach Neustart der VM {{{disklserver.intern}}} started der Debian (Edu) Installer:

  * 64-bit Install auswählen
  * Warten, Debian Edu Installer lädt...
    * Installationsprofil: Minimal
    * Autom. Part.: ja
    * Paketverwend.: Ja
    * Kennwort für root festlegen
  * ''Wichtig:'' Nach der Installation von {{{disklserver.intern}}}, aber vor dem ersten Start muss der Server im Debian Edu / Skolelinux Netzwerk bekannt gemacht werden:
    * GOsa² auf TJENER:
      * System (Typ: Server) anlegen für {{{disklserver.intern}}}
      * Beschreibung: {{{Diskless Workstations Image Server}}}
      * IP: {{{10.0.2.9}}}
      * ermittelte MAC-Adresse eintragen
      * DHCP (10.0.0.0-Netz)
      * DNS aktivieren
      * NIS Netgroups Eintrag in Gruppe: {{{server-hosts}}}

=== Konfiguration ===

Nach dem Neustart der VM {{{disklserver.intern}}} sollte der Hostname des gestarteten Systems auf {{{disklserver.intern}}} gesetzt sein. Wird stattdessen als Hostname {{{localhost}}} angezeigt, hat die Eintragung des Systems in GOsa² nicht funktioniert. Bevor man weiter fortfahren kann, muss dieser Fehler behoben sein.

==== Fine-Tuning der VM-Einstellungen ====

  * Nach der Installation und dem ersten Start führen wir die folgenden Änderungen an der VM-Konfiguration von {{{disklserver.intern}}} durch. Hierfür muss die VM herunter gefahren werden und die VM-Konfiguration in {{{virt-manager}}} muss aufgerufen werden.
    * VM {{{disklserver.intern}}} darf nicht gebootet, wenn der Virtualisierungs-Server (bzw. {{{libvirtd}}}) startet (nur TJENER sollte automatisch starten)
    * zweite Festplatte hinzufügen: {{{disklserver.intern_sdb}}}
    * VM wieder anschalten und in der VM weiterarbeiten

==== Paket-Quellen für Debian squeeze-backports und ITZkS dem Diskless Workstations Server hinzufügen ====

{{{

$ editor /etc/apt/sources.list.d/backports.list

"""
deb http://ftp.de.debian.org/debian-backports squeeze-backports main contrib non-free
"""

$ editor /etc/apt/sources.list.d/itzks.list

"""
deb http://packages.it-zukunft-schule.de/debian squeeze main
deb http://packages.it-zukunft-schule.de/debian squeeze-backports main
"""

$ apt-get update && apt-get install itzks-keyring && apt-get update
}}}

==== Software nachinstallieren ====
Zeile 42: Zeile 94:

 {{{

        Virtmanager:
        2. Platte hinzufügen: disklserver.intern_sdb
                
        VM anschalten
        proxy verwenden: http://webcache:3128
        Installation wie bei Virtserver (ssh, standard)
        Standardoptionen wählen
        
        VM ausschalten
        Virtmanager:
        nächster Start von CD (CD nach oben) rausnehmen
        Neustart
        
        Pakete installieren:
        mc
        vim
        nmap
        nload
        
        debian-edu-artwork
        nfs-kernel-server
        atftpd
        syslinux
}}}
 * Die folgenden Pakete sollten nachinstalliert werden:{{{
$ sudo apt-get install itzks-packages-disklserver
}}}

==== System konfigurieren ====

 1. Login als {{{root}}}
 1. Standard-Editor festlegen (an der Unix-Console){{{
$ update-alternatives --config editor
}}}Hier {{{vim.basic}}} auswählen.

 1. Das Programm Midnight Commander starten (Kommando: {{{mc}}}):
   * F9 drücken
   * Optionen -> Konfiguration: [x] Internen Editor benutzen
   * Optionen -> Einstellungen speichern
   * F10: Midnight Commander beenden
 1. Den Midnight Commander Editor (Kommando: {{{mcedit}}}) starten:
   * F9 drücken
   * Menüpunkt: ''Optionen -> Allgemein''
   * "Backspace durch Tabs" auswählen
   * "Tabs mit Leerzeichen auffüllen" auswählen
   * "Return rückt automatisch ein" abwählen
   * mit "OK" bestätigen
   * F10: Editor beenden
 
==== Nur Admin-User und Junior-Admins dürfen sich auf DISKLSERVER einloggen ====

Schul-Admins und IT-Dienstleister tragen wir in der LDAP-Gruppe {{{admins}}} ein. Junior-Admins (Schüler der Computer-AG) tragen wir in der Gruppe {{{jradmins}}} ein.

/!\ '''Wichtig:''' Der Diskless Workstation Server darf ein Login nur für Dienstleister, Schul-Admins und Junior-Admins erlauben. Hierfür müssen die Dateien {{{/etc/security/access.conf}}} und {{{/etc/pam.d/sshd}}} angepasst werden:{{{
--- /etc/security/access.conf.orig
+++ /etc/security/access.conf
@@ -120,3 +120,6 @@
 #
 # All other users should be denied to get access from all sources.
 #- : ALL : ALL
+
++ : admins jradmins root : ALL
+- : ALL : ALL
}}}{{{
--- /etc/pam.d/sshd.orig 2012-07-30 17:51:12.000000000 +0200
+++ /etc/pam.d/sshd 2012-07-30 17:51:26.000000000 +0200
@@ -15,7 +15,7 @@
 
 # Uncomment and edit /etc/security/access.conf if you need to set complex
 # access limits that are hard to express in sshd_config.
-# account required pam_access.so
+account required pam_access.so
 
 # Standard Un*x authorization.
 @include common-account
}}}


=== Einrichtung des Diskless Workstation Chroot ===

==== Speicherplatz für DlW Chroot bereit stellen ====

Zunächst muss der für das Diskless Workstation Chroot Image vorgesehene Festplattenplatz vorbereitet werden.

 * Festplatte partitionieren:{{{
$ sudo fdisk /dev/vdb
}}}

 * die virtuelle Festplatte wird mit einer primären Partition konfiguriert, FS Type ist ,,Linux".{{{
Disk /dev/vdb: 85.9 GB, 85899345920 bytes
16 heads, 63 sectors/track, 166440 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x99acb31a

   Device Boot Start End Blocks Id System
/dev/vdb1 1 166440 83885728+ 83 Linux
}}}

 * dann diese Partition mit dem XFS-Dateisystem formatieren:{{{
$ sudo mkfs.xfs /dev/vdb1
}}}

 * mit dem Befehl {{{blkid}}} die Block Device ID des frisch formatierten Dateisystem ermitteln und einen Eintrag in {{{/etc/fstab}}} anlegen:{{{
--- /etc/fstab.orig 2012-07-31 13:31:19.000000000 +0200
+++ /etc/fstab 2012-07-31 13:34:46.000000000 +0200
@@ -10,6 +10,7 @@
 /dev/mapper/vg_system-root / ext3 errors=remount-ro 0 1
 # /boot was on /dev/vda1 during installation
 UUID=<blkid-/boot> /boot ext3 defaults 0 2
+UUID=<blkid-/srv> /srv xfs defaults 0 2
 /dev/mapper/vg_system-usr /usr ext3 defaults 0 2
 /dev/mapper/vg_system-var /var ext3 defaults 0 2
 /dev/mapper/vg_system-swap_1 none swap sw 0 0
}}}
 * und zuletzt das Dateisystem mounten:{{{
$ sudo mount /srv
}}}

==== Chroot Erstellen ====

Das Diskless Workstation Chroot wird automatische bei der Installation eines Debian Edu Terminal (LTSP) Servers erstellt. Dieses Chroot liegt auf einem frisch installierten LTSP Server im Ordner {{{/opt/ltsp/i386}}}.

Nach der Debian Edu Terminalserver Installation wird das Diskless Chroot mittels {{{ŧar}}} verpackt und auf den Diskless Workstation Server nach {{{/srv/ltsp/i386}}} kopiert.

{{{
# Als Super-User root@ltspserver00:
# =================================
ltspserver00:~$ cd /opt
ltspserver00:/opt$ rsync -aHAX --numeric-ids ltsp root@disklserver:/srv
}}}

==== PXE-Bootumgebung anlegen ====

Hierzu haben wir einen [[attachment:itzks-tftp-pxe.tar.gz|Tarball mit Konfigurationsdateien (tftp/syslinux)]] zusammengestellt. Diesen mit {{{wget}}} auf {{{disklserver.intern}}} unter /srv entpacken:{{{
$ cd ~
$ http_proxy=http://webcache.intern:3128 wget --content-disposition "http://wiki.it-zukunft-schule.de/Technik/Installation/VM/DisklessServer?action=AttachFile&do=get&target=itzks-tftp-pxe.tar.gz"
$ cp itzks-tftp-pxe.tar.gz /tmp
$ cd /srv
$ sudo tar -xvzf /tmp/itzks-tftp-pxe.tar.gz
$ rm -f /tmp/itzks-tftp-pxe.tar.gz ~/itzks-tftp-pxe.tar.gz
}}}

==== Chroot-Verzeichnis via NFSv3 exportieren ====

Um das Diskless Workstation Chroot Verzeichnis via NFSv3 zu exportieren, muss dieser Eintrag der Datei {{{/etc/exports}}} hinzugefügt werden:{{{
$ sudo -i
$ echo "/srv/ltsp/i386 @workstation-hosts(ro,async,no_root_squash,subtree_check) 127.0.0.1(ro,async,no_root_squash,subtree_check,insecure)" >> /etc/exports
$ exportfs -ar
$ exit
}}}

==== Chroot für Aktualisierung vorbereiten ====

Über das Paket {{{itzks-packages-disklserver}}} wurde das Skript {{{diskless-workstation-shell}}} auf {{{disklserver.intern}}} installiert. Dieses Skript ruft eine Shell im Diskless Workstation Chroot auf, so dass Software-Aktualisierungen und anderen Aufgaben im Chroot durchgeführt werden können.{{{
sudo diskless-workstation-shell
}}}

Im Chroot müssen jetzt weitere APT-Quellen hinzugefügt werden, um Aktualisierungen aus Debian backports und aus dem [[Technik/Paketarchiv|ITZkS-Paketarchiv]] installieren zu können:{{{
$ editor /etc/apt/sources.list.d/backports.list

"""
deb http://ftp.de.debian.org/debian-backports squeeze-backports main contrib non-free
"""

$ editor /etc/apt/sources.list.d/itzks.list

"""
deb http://packages.it-zukunft-schule.de/debian squeeze main
deb http://packages.it-zukunft-schule.de/debian squeeze-backports main
"""

$ editor /etc/apt/sources.list.d/x2go.list

"""
deb http://packages.x2go.org/debian squeeze main
"""

$ apt-get update && apt-get install itzks-keyring x2go-keyring && apt-get update
}}}


==== Kernel im Chroot aktualisieren ====

/!\ Die untenstehenden Arbeitsschritte werden im Diskless Workstation Chroot ausgeführt (Kommando: {{{diskless-workstation-shell}}}).

Vor der Software-Aktualisierung spielen wir einen aktuellen Kernel ein:{{{
$ apt-get install -t squeeze-backports linux-image-486
}}}

==== Software im Chroot aktualisieren ====

/!\ Die untenstehenden Arbeitsschritte werden im Diskless Workstation Chroot ausgeführt (Kommando: {{{diskless-workstation-shell}}}).

Die Software, die auf einer Diskless Workstation installiert werden soll, sind als Abhängigkeiten im Paket {{{itzks-packages-diskless}}} hinterlegt. Eine Installation dieses Pakets installiert die benötigte Software automatisch mit:{{{
$ apt-get install -t squeeze-backports itzks-packages-diskless
}}}

==== Konfiguration im Chroot anpassen ====

/!\ Die untenstehenden Arbeitsschritte werden im Diskless Workstation Chroot ausgeführt (Kommando: {{{diskless-workstation-shell}}}).

Alle Arbeitsschritte als Super-User {{{root}}} im Chroot durchführen!!!

 1. Zusätzliche Mountpoints angelegen:{{{
$ touch /etc/syslog.conf
$ touch /etc/X11/xorg.conf
}}}
 1. Einige Dienste neu starten, nachdem {{{network-manager}}} das Netzwerk gestartet hat:
  * Den {{{autofs}}} Dienst neu starten, sobald das Netzwerk verfügbar ist:{{{
$ vim /etc/network/if-up.d/autofs
"""
#!/bin/sh

/etc/init.d/autofs restart

"""
$ chmod a+x /etc/network/if-up.d/autofs
}}}
  * Den CUPS-Daemon neu starten, sobald das Netzwerk verfügbar ist:{{{
$ vim /etc/network/if-up.d/cups
"""
#!/bin/sh

/etc/init.d/cups restart

"""
$ chmod a+x /etc/network/if-up.d/cups
}}}

=== LDAP: DHCP-Gruppen für PXE-Bootumgebung ===

Mit dem Befehl {{{ldapvi}}} werden nun einige DHCP-Clientgruppen zum LDAP-Baum auf dem Debian Edu Hauptserver hinzugefügt.

 * das Programm {{{ldapvi}}} aufrufen:{{{
<user>@tjener:~$ ldapvi -ZZZ -D cn=admin,ou=ldap-access,dc=skole,dc=skolelinux,dc=no
}}}
 * für die DN {{{cn=admin,ou=ldap-access,dc=skole,dc=skolelinux,dc=no}}} das Kennwort der Hauptserver-Installation verwenden
 * die folgenden Zeilen (LDIF-Format) an die Textausgabe in {{{ldapvi}}} anhängen:{{{
add cn=diskless-and-localdisk-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
dhcpStatements: filename "/srv/tftp/diskless+localdisk+x2go/pxelinux.0"
dhcpStatements: next-server disklserver
cn: diskless-and-localdisk-workstations
objectClass: top
objectClass: dhcpGroup
objectClass: dhcpOptions

add cn=diskless-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
dhcpStatements: filename "/srv/tftp/diskless+x2go/pxelinux.0"
dhcpStatements: next-server disklserver
cn: diskless-workstations
objectClass: top
objectClass: dhcpGroup
objectClass: dhcpOptions

add cn=skolelinux-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
dhcpStatements: filename "/srv/tftp/skolelinux+x2go/pxelinux.0"
dhcpStatements: next-server disklserver
cn: skolelinux-workstations
objectClass: top
objectClass: dhcpGroup
objectClass: dhcpOptions

add cn=ubuntu-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
dhcpStatements: filename "/srv/tftp/ubuntu+x2go/pxelinux.0"
dhcpStatements: next-server disklserver
cn: ubuntu-workstations
objectClass: top
objectClass: dhcpGroup
objectClass: dhcpOptions

add cn=windows-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
dhcpStatements: filename "/srv/tftp//windows+x2go/pxelinux.0"
dhcpStatements: next-server disklserver
cn: windows-workstations
objectClass: top
objectClass: dhcpGroup
objectClass: dhcpOptions

add cn=x2go-thinclients,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
dhcpStatements: filename "/srv/tftp/x2go-tce/pxelinux.0"
dhcpStatements: next-server disklserver
cn: x2go-thinclients
objectClass: top
objectClass: dhcpGroup
objectClass: dhcpOptions
}}}

Diskless Workstation Server

/!\ Achtung: Diese Seite ist noch nicht vollständig!!!

Im Allgemeinen richten wir disklserver.intern auf dem ersten Virtualisierungs-Server virt-man-01 ein. Hardware-Voraussetzung für einen Diskless Workstation Server sind schnelle Festplatten und eine Gbit-LAN Netzwerkkarte.

Sofern der erste Virtualisierungs-Server noch ein ungenutztes Netzwerk-Interface hat, empfiehlt es sich, der VM disklserver.intern ein eigenes Netzwerk-Interface (durch Bridging) bereit zu stellen.

Installation

Das Debian Edu Minimalsystem disklserver.intern installieren wir über die PXE-Installationsumgebung von Debian Edu / Skolelinux.

Logical Volume (virtuelle Festplatte) vorbereiten

  1. Die Software virt-manager starten.

  2. Klick auf Bearbeiten -> Host-Details

  3. Im neuen Fenster den Reiter Speicher auswählen.

    • in LVM Volume Group vm-slow-vg einen neuen Datenträger anlegen

      • Name: disklserver.intern_sda

      • Größe: zw. 15Gb und 20Gb
      • Klick auf Abschliessen

    • in LVM Volume Group vm-fast-vg einen neuen Datenträger anlegen

      • Name: disklserver.intern_sdb

      • Größe: ca. 80Gb
      • Klick auf Abschliessen

VM erstellen

  • Neue VM lokal (auf localhost (QEMU)) erstellen

    • Name: disklserver.intern
    • Starten vom Netzwerk (PXE)
    • Betriebssystem: Linux, Debian squeeze
    • Speicher: 1-4Gb
    • CPUs: 2
    • Speicher wählen: Klick auf Durchsuchen: vm-slow-vg -> disklserver.intern_sda

    • erw Opt: specify shared device name:br1 (alternativ: eine eigene Netzwerkschnittstelle als Bridge bereit stellen und dann diese Bridge, z.Bsp. br2, hier auswählen)

    • Klick auf Fertigstellen, Installation startet

VM installieren

Nach Neustart der VM disklserver.intern started der Debian (Edu) Installer:

  • 64-bit Install auswählen
  • Warten, Debian Edu Installer lädt...
    • Installationsprofil: Minimal
    • Autom. Part.: ja
    • Paketverwend.: Ja
    • Kennwort für root festlegen
  • Wichtig: Nach der Installation von disklserver.intern, aber vor dem ersten Start muss der Server im Debian Edu / Skolelinux Netzwerk bekannt gemacht werden:

    • GOsa² auf TJENER:
      • System (Typ: Server) anlegen für disklserver.intern

      • Beschreibung: Diskless Workstations Image Server

      • IP: 10.0.2.9

      • ermittelte MAC-Adresse eintragen
      • DHCP (10.0.0.0-Netz)
      • DNS aktivieren
      • NIS Netgroups Eintrag in Gruppe: server-hosts

Konfiguration

Nach dem Neustart der VM disklserver.intern sollte der Hostname des gestarteten Systems auf disklserver.intern gesetzt sein. Wird stattdessen als Hostname localhost angezeigt, hat die Eintragung des Systems in GOsa² nicht funktioniert. Bevor man weiter fortfahren kann, muss dieser Fehler behoben sein.

Fine-Tuning der VM-Einstellungen

  • Nach der Installation und dem ersten Start führen wir die folgenden Änderungen an der VM-Konfiguration von disklserver.intern durch. Hierfür muss die VM herunter gefahren werden und die VM-Konfiguration in virt-manager muss aufgerufen werden.

    • VM disklserver.intern darf nicht gebootet, wenn der Virtualisierungs-Server (bzw. libvirtd) startet (nur TJENER sollte automatisch starten)

    • zweite Festplatte hinzufügen: disklserver.intern_sdb

    • VM wieder anschalten und in der VM weiterarbeiten

Paket-Quellen für Debian squeeze-backports und ITZkS dem Diskless Workstations Server hinzufügen

$ editor /etc/apt/sources.list.d/backports.list

"""
deb http://ftp.de.debian.org/debian-backports squeeze-backports main contrib non-free
"""

$ editor /etc/apt/sources.list.d/itzks.list

"""
deb http://packages.it-zukunft-schule.de/debian squeeze main
deb http://packages.it-zukunft-schule.de/debian squeeze-backports main
"""

$ apt-get update && apt-get install itzks-keyring && apt-get update

Software nachinstallieren

  • Die folgenden Pakete sollten nachinstalliert werden:

    $ sudo apt-get install itzks-packages-disklserver

System konfigurieren

  1. Login als root

  2. Standard-Editor festlegen (an der Unix-Console)

    $ update-alternatives --config editor

    Hier vim.basic auswählen.

  3. Das Programm Midnight Commander starten (Kommando: mc):

    • F9 drücken
    • Optionen -> Konfiguration: [x] Internen Editor benutzen

    • Optionen -> Einstellungen speichern

    • F10: Midnight Commander beenden
  4. Den Midnight Commander Editor (Kommando: mcedit) starten:

    • F9 drücken
    • Menüpunkt: Optionen -> Allgemein

    • "Backspace durch Tabs" auswählen
    • "Tabs mit Leerzeichen auffüllen" auswählen
    • "Return rückt automatisch ein" abwählen
    • mit "OK" bestätigen
    • F10: Editor beenden

Nur Admin-User und Junior-Admins dürfen sich auf DISKLSERVER einloggen

Schul-Admins und IT-Dienstleister tragen wir in der LDAP-Gruppe admins ein. Junior-Admins (Schüler der Computer-AG) tragen wir in der Gruppe jradmins ein.

/!\ Wichtig: Der Diskless Workstation Server darf ein Login nur für Dienstleister, Schul-Admins und Junior-Admins erlauben. Hierfür müssen die Dateien /etc/security/access.conf und /etc/pam.d/sshd angepasst werden:

--- /etc/security/access.conf.orig
+++ /etc/security/access.conf
@@ -120,3 +120,6 @@
 #
 # All other users should be denied to get access from all sources.
 #- : ALL : ALL
+
++ : admins jradmins root : ALL
+- : ALL : ALL

--- /etc/pam.d/sshd.orig        2012-07-30 17:51:12.000000000 +0200
+++ /etc/pam.d/sshd     2012-07-30 17:51:26.000000000 +0200
@@ -15,7 +15,7 @@
 
 # Uncomment and edit /etc/security/access.conf if you need to set complex
 # access limits that are hard to express in sshd_config.
-# account  required     pam_access.so
+account  required     pam_access.so
 
 # Standard Un*x authorization.
 @include common-account

Einrichtung des Diskless Workstation Chroot

Speicherplatz für DlW Chroot bereit stellen

Zunächst muss der für das Diskless Workstation Chroot Image vorgesehene Festplattenplatz vorbereitet werden.

  • Festplatte partitionieren:

    $ sudo fdisk /dev/vdb
  • die virtuelle Festplatte wird mit einer primären Partition konfiguriert, FS Type ist ,,Linux".

    Disk /dev/vdb: 85.9 GB, 85899345920 bytes
    16 heads, 63 sectors/track, 166440 cylinders
    Units = cylinders of 1008 * 512 = 516096 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x99acb31a
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/vdb1               1      166440    83885728+  83  Linux
  • dann diese Partition mit dem XFS-Dateisystem formatieren:

    $ sudo mkfs.xfs /dev/vdb1
  • mit dem Befehl blkid die Block Device ID des frisch formatierten Dateisystem ermitteln und einen Eintrag in /etc/fstab anlegen:

    --- /etc/fstab.orig     2012-07-31 13:31:19.000000000 +0200
    +++ /etc/fstab  2012-07-31 13:34:46.000000000 +0200
    @@ -10,6 +10,7 @@
     /dev/mapper/vg_system-root   /             ext3    errors=remount-ro 0       1
     # /boot was on /dev/vda1 during installation
     UUID=<blkid-/boot>           /boot         ext3    defaults        0       2
    +UUID=<blkid-/srv>            /srv          xfs     defaults        0       2 
     /dev/mapper/vg_system-usr    /usr          ext3    defaults        0       2
     /dev/mapper/vg_system-var    /var          ext3    defaults        0       2
     /dev/mapper/vg_system-swap_1 none          swap    sw              0       0
  • und zuletzt das Dateisystem mounten:

    $ sudo mount /srv

Chroot Erstellen

Das Diskless Workstation Chroot wird automatische bei der Installation eines Debian Edu Terminal (LTSP) Servers erstellt. Dieses Chroot liegt auf einem frisch installierten LTSP Server im Ordner /opt/ltsp/i386.

Nach der Debian Edu Terminalserver Installation wird das Diskless Chroot mittels ŧar verpackt und auf den Diskless Workstation Server nach /srv/ltsp/i386 kopiert.

# Als Super-User root@ltspserver00:
# =================================
ltspserver00:~$ cd /opt
ltspserver00:/opt$ rsync -aHAX --numeric-ids ltsp root@disklserver:/srv

PXE-Bootumgebung anlegen

Hierzu haben wir einen Tarball mit Konfigurationsdateien (tftp/syslinux) zusammengestellt. Diesen mit wget auf disklserver.intern unter /srv entpacken:

$ cd ~
$ http_proxy=http://webcache.intern:3128 wget --content-disposition "http://wiki.it-zukunft-schule.de/Technik/Installation/VM/DisklessServer?action=AttachFile&do=get&target=itzks-tftp-pxe.tar.gz"
$ cp itzks-tftp-pxe.tar.gz /tmp
$ cd /srv
$ sudo tar -xvzf /tmp/itzks-tftp-pxe.tar.gz
$ rm -f /tmp/itzks-tftp-pxe.tar.gz ~/itzks-tftp-pxe.tar.gz

Chroot-Verzeichnis via NFSv3 exportieren

Um das Diskless Workstation Chroot Verzeichnis via NFSv3 zu exportieren, muss dieser Eintrag der Datei /etc/exports hinzugefügt werden:

$ sudo -i
$ echo "/srv/ltsp/i386 @workstation-hosts(ro,async,no_root_squash,subtree_check) 127.0.0.1(ro,async,no_root_squash,subtree_check,insecure)" >> /etc/exports
$ exportfs -ar
$ exit

Chroot für Aktualisierung vorbereiten

Über das Paket itzks-packages-disklserver wurde das Skript diskless-workstation-shell auf disklserver.intern installiert. Dieses Skript ruft eine Shell im Diskless Workstation Chroot auf, so dass Software-Aktualisierungen und anderen Aufgaben im Chroot durchgeführt werden können.

sudo diskless-workstation-shell

Im Chroot müssen jetzt weitere APT-Quellen hinzugefügt werden, um Aktualisierungen aus Debian backports und aus dem ITZkS-Paketarchiv installieren zu können:

$ editor /etc/apt/sources.list.d/backports.list

"""
deb http://ftp.de.debian.org/debian-backports squeeze-backports main contrib non-free
"""

$ editor /etc/apt/sources.list.d/itzks.list

"""
deb http://packages.it-zukunft-schule.de/debian squeeze main
deb http://packages.it-zukunft-schule.de/debian squeeze-backports main
"""

$ editor /etc/apt/sources.list.d/x2go.list

"""
deb http://packages.x2go.org/debian squeeze main
"""

$ apt-get update && apt-get install itzks-keyring x2go-keyring && apt-get update

Kernel im Chroot aktualisieren

/!\ Die untenstehenden Arbeitsschritte werden im Diskless Workstation Chroot ausgeführt (Kommando: diskless-workstation-shell).

Vor der Software-Aktualisierung spielen wir einen aktuellen Kernel ein:

$ apt-get install -t squeeze-backports linux-image-486

Software im Chroot aktualisieren

/!\ Die untenstehenden Arbeitsschritte werden im Diskless Workstation Chroot ausgeführt (Kommando: diskless-workstation-shell).

Die Software, die auf einer Diskless Workstation installiert werden soll, sind als Abhängigkeiten im Paket itzks-packages-diskless hinterlegt. Eine Installation dieses Pakets installiert die benötigte Software automatisch mit:

$ apt-get install -t squeeze-backports itzks-packages-diskless

Konfiguration im Chroot anpassen

/!\ Die untenstehenden Arbeitsschritte werden im Diskless Workstation Chroot ausgeführt (Kommando: diskless-workstation-shell).

Alle Arbeitsschritte als Super-User root im Chroot durchführen!!!

  1. Zusätzliche Mountpoints angelegen:

    $ touch /etc/syslog.conf
    $ touch /etc/X11/xorg.conf
  2. Einige Dienste neu starten, nachdem network-manager das Netzwerk gestartet hat:

    • Den autofs Dienst neu starten, sobald das Netzwerk verfügbar ist:

      $ vim /etc/network/if-up.d/autofs
      """
      #!/bin/sh
      
      /etc/init.d/autofs restart
      
      """
      $ chmod a+x /etc/network/if-up.d/autofs
    • Den CUPS-Daemon neu starten, sobald das Netzwerk verfügbar ist:

      $ vim /etc/network/if-up.d/cups
      """
      #!/bin/sh
      
      /etc/init.d/cups restart
      
      """
      $ chmod a+x /etc/network/if-up.d/cups

LDAP: DHCP-Gruppen für PXE-Bootumgebung

Mit dem Befehl ldapvi werden nun einige DHCP-Clientgruppen zum LDAP-Baum auf dem Debian Edu Hauptserver hinzugefügt.

  • das Programm ldapvi aufrufen:

    <user>@tjener:~$ ldapvi -ZZZ -D cn=admin,ou=ldap-access,dc=skole,dc=skolelinux,dc=no
  • für die DN cn=admin,ou=ldap-access,dc=skole,dc=skolelinux,dc=no das Kennwort der Hauptserver-Installation verwenden

  • die folgenden Zeilen (LDIF-Format) an die Textausgabe in ldapvi anhängen:

    add cn=diskless-and-localdisk-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
    dhcpStatements: filename "/srv/tftp/diskless+localdisk+x2go/pxelinux.0"
    dhcpStatements: next-server disklserver
    cn: diskless-and-localdisk-workstations
    objectClass: top
    objectClass: dhcpGroup
    objectClass: dhcpOptions
    
    add cn=diskless-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
    dhcpStatements: filename "/srv/tftp/diskless+x2go/pxelinux.0"
    dhcpStatements: next-server disklserver
    cn: diskless-workstations
    objectClass: top
    objectClass: dhcpGroup
    objectClass: dhcpOptions
    
    add cn=skolelinux-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
    dhcpStatements: filename "/srv/tftp/skolelinux+x2go/pxelinux.0"
    dhcpStatements: next-server disklserver
    cn: skolelinux-workstations
    objectClass: top
    objectClass: dhcpGroup
    objectClass: dhcpOptions
    
    add cn=ubuntu-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
    dhcpStatements: filename "/srv/tftp/ubuntu+x2go/pxelinux.0"
    dhcpStatements: next-server disklserver
    cn: ubuntu-workstations
    objectClass: top
    objectClass: dhcpGroup
    objectClass: dhcpOptions
    
    add cn=windows-workstations,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
    dhcpStatements: filename "/srv/tftp//windows+x2go/pxelinux.0"
    dhcpStatements: next-server disklserver
    cn: windows-workstations
    objectClass: top
    objectClass: dhcpGroup
    objectClass: dhcpOptions
    
    add cn=x2go-thinclients,cn=10.0.0.0,cn=intern,cn=dhcp,cn=tjener,ou=servers,ou=systems,dc=skole,dc=skolelinux,dc=no
    dhcpStatements: filename "/srv/tftp/x2go-tce/pxelinux.0"
    dhcpStatements: next-server disklserver
    cn: x2go-thinclients
    objectClass: top
    objectClass: dhcpGroup
    objectClass: dhcpOptions

IT-Zukunft Schule: Technik/Installation/VM/DisklessServer (zuletzt geändert am 2022-01-06 15:21:21 durch MikeGabriel)