17924
Kommentar:
|
1012
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 3: | Zeile 3: |
<<TableOfContents(4)>> | <<TableOfContents(5)>> |
Zeile 5: | Zeile 5: |
/!\ '''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, eine 10 Gbit-LAN Netzwerkkarte mit entsprechender Anbindung in das Schul-Intranet (über alle Switches hinweg, über die Diskless Workstations betrieben werden sollen) wäre optimal. |
Zeile 7: | Zeile 7: |
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. |
Sollte kein 10Gbit-LAN in der Schule verfügbar sein, dann empfiehlt es sich, der VM {{{disklserver.intern}}} eigene Netzwerk-Interfaces (via Bonding) bereit zu stellen. |
Zeile 13: | Zeile 11: |
Das Debian Edu Minimalsystem {{{disklserver.intern}}} installieren wir über die PXE-Installationsumgebung von Debian Edu / Skolelinux. | [[/bullseye|Basisinstallation mit Debian bullseye]] |
Zeile 15: | Zeile 13: |
==== Logical Volume (virtuelle Festplatte) vorbereiten ==== | VM Instanz für {{{disklserver.intern}}} vorbereiten: [[/libvirt|mit libVirt]] | [[/ganeti|mit Ganeti]] |
Zeile 17: | Zeile 15: |
1. Die Software {{{virt-manager}}} starten. 1. Klick auf ''Bearbeiten'' -> ''Host-Details'' 1. 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'' |
=== Ältere Installationsanleitungen === |
Zeile 29: | Zeile 17: |
==== VM erstellen ==== | [[/stretch|Basisinstallation mit Debian stretch]] |
Zeile 31: | Zeile 19: |
* 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 |
[[/jessie|Basisinstallation mit Debian jessie]] |
Zeile 41: | Zeile 21: |
==== 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}}} 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 }}} ==== 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, Debian Multimedia, dem X2Go-Paketarchiv 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/multimedia.list """ deb http://www.deb-multimedia.org/ squeeze main non-free """ $ editor /etc/apt/sources.list.d/x2go.list """ deb http://packages.x2go.org/debian squeeze main """ $ 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 x2go-keyring deb-multimedia-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 }}} Und danach ein Distribution Upgrade auf Debian squeeze-backports:{{{ $ apt-get dist-upgrade -t squeeze-backports }}} Sollen DVDs auf Diskless Workstations abspielbar sein, dann muss von Debian Multimedia das Paket {{{libdvdcss}}} nachinstalliert werden:{{{ $ apt-get install libdvdcss }}} ==== 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 }}} 1. Die Installation des Pakets {{{x2goclient}}} installiert einen SSH-Server mit. Auf Diskless Workstation sollte dieser Dienst nur auf der {{{localhost}}} Adresse (IPv4-only!) erreichbar sein:{{{ --- /etc/ssh/sshd_config.orig 2012-08-04 11:14:11.419983048 +0200 +++ /etc/ssh/sshd_config 2012-08-04 11:17:53.643836494 +0200 @@ -5,7 +5,8 @@ Port 22 # Use these options to restrict which interfaces/protocols sshd will bind to #ListenAddress :: -#ListenAddress 0.0.0.0 +AddressFamily inet +ListenAddress 172.0.0.1 Protocol 2 # HostKeys for protocol version 2 HostKey /etc/ssh/ssh_host_rsa_key }}} 1. Auf den Diskless Workstation mit Debian Edu squeeze lassen sich unter GNOME USB-Devices nicht vernünftig aushängen. Hierfür muss man (leider an einer ganz unschönen Stelle) die folgende Anpassung machen:{{{ --- /usr/share/polkit-1/actions/org.freedesktop.udisks.policy.orig +++ /usr/share/polkit-1/actions/org.freedesktop.udisks.policy @@ -71,9 +71,9 @@ <message xml:lang="da">Autorisering er påkrævet for at afmontere enheder monteret af en anden bruger</message> <message xml:lang="de">Zugriffsrechte werden benötigt um ein Gerät auszuhängen, das ein anderer Benutzer eingehängt hat</message> <defaults> - <allow_any>no</allow_any> - <allow_inactive>no</allow_inactive> - <allow_active>auth_admin</allow_active> + <allow_any>yes</allow_any> + <allow_inactive>yes</allow_inactive> + <allow_active>yes</allow_active> </defaults> </action> @@ -112,8 +112,8 @@ <message xml:lang="da">Autorisering er påkrævet for at skubbe medie ud af en enhed</message> <message xml:lang="de">Zugriffsrechte werden benötigt um das Medium aus dem Gerät auszuwerfen</message> <defaults> - <allow_any>no</allow_any> - <allow_inactive>no</allow_inactive> + <allow_any>yes</allow_any> + <allow_inactive>yes</allow_inactive> <allow_active>yes</allow_active> </defaults> </action> @@ -124,8 +124,8 @@ <message>Authentication is required to detach the drive</message> <message xml:lang="de">Zugriffsrechte werden benötigt um das Laufwerk zu trennen</message> <defaults> - <allow_any>no</allow_any> - <allow_inactive>no</allow_inactive> + <allow_any>yes</allow_any> + <allow_inactive>yes</allow_inactive> <allow_active>yes</allow_active> </defaults> </action> }}} === PXE-Bootumgebung für Diskless Workstations === Die PXE-Bootumgebung wird mithilfe der Tools {{{syslinux}}} und {{{atftpd}}} bereit gestellt. ==== PXE-Bootumgebung anlegen ==== Die PXE-Bootumgebung (eine Syslinux-Konfiguration) ist im Paket {{{itzks-systems-disklserver}}} enthalten. Installationshinweise befinden sich in der folgenden Datei:{{{ $ zcat /usr/share/doc/itzks-systems/disklserver/examples/README.tftp.gz }}} Eine Online-Kopie des gen. READMEs ist ebenfalls verfügbar: code.it-zukunft-schule.de/gitweb?p=itzks-systems.git;a=blob;f=examples/disklserver/README.tftp ==== 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 }}} |
[[/squeeze|Basisinstallation mit Debian squeeze]] |
Diskless Workstation Server
Inhaltsverzeichnis
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, eine 10 Gbit-LAN Netzwerkkarte mit entsprechender Anbindung in das Schul-Intranet (über alle Switches hinweg, über die Diskless Workstations betrieben werden sollen) wäre optimal.
Sollte kein 10Gbit-LAN in der Schule verfügbar sein, dann empfiehlt es sich, der VM disklserver.intern eigene Netzwerk-Interfaces (via Bonding) bereit zu stellen.
Installation
Basisinstallation mit Debian bullseye
VM Instanz für disklserver.intern vorbereiten: mit libVirt | mit Ganeti
Ältere Installationsanleitungen
Basisinstallation mit Debian stretch