wiki:AdminLinbo
close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

Version 7 (modified by bau, 10 years ago) ( diff )

--

LINBO

Aus der Wikipedia:

Linbo steht für Linux-based Network Boot Operating System und ist Teil der Selbstheilungsfunktionalität (Selbstheilende Arbeitsstationen, SheilA) der Serverdistribution ​paedML Linux. (​weiterlesen)

Aufnehmen neuer Clients

Im Konzept der paedML werden neue Clientrechner am System zu Benutzung aufgenommen, indem der betreffende Rechner per PXE ein Mini-Linux bootet. Von dort aus wird der neue Client am System angemeldet. Dabei geschieht folgendes:

Nach einem Durchlauf des Scripts ./import_workstations wird

  • ein Samba-Workstation-Account angelegt
  • ein Samba-Klassenarbeits-Account angelegt
  • die Firewall für die MAC freigeschaltet

Der Client hat damit Internetzugang, ist in der Schulkonsole bekannt und für die normale Schularbeit im Sinne der paedML verwendbar.

Anpassungen

/etc/linuxmuster/import_workstations.d

Wir setzen mehrere LTSP-Server mit dem DHCP/DNS-Server dnsmasq ein. Nach dem Workstation-Import werden aus den Config-Files von linuxmuster.net sowie unseren Config-Files für die LTSP-Server unter /etc/linuxmuster/ltsp_config/ die Konfigurationen für die verschiedenen dnsmasq-Server erstellt, auf die Server hochgeladen und die dnsmasq-Prozesse dort neu gestartet. Der Link wurde im script.d-Verzeichnis der LML abgelegt.

Dateien:

  • /etc/linuxmuster/ltsp_config/paedml.template
    Vorlage für die paedml-dnsmasq-Konfiguration, Script passt DNS, WPAD etc an
  • /etc/linuxmuster/ltsp_config/ltsp.template
    Vorlage für die LTSP-dnsmasq-Konfiguration, Script passt die IP-Bereiche, DNS, WPAD etc an
  • /etc/linuxmuster/ltsp_config/ltspl.template
    Vorlage für die ltspl-dnsmasq-Konfiguration
  • /etc/linuxmuster/ltsp_config/paedml
    Hier lagert die fertig angepasste Konfiguration des paedml-Servers
  • /etc/linuxmuster/ltsp_config/ltspX/ und /etc/linuxmuster/ltsp_config/ltsplX/
    Hier lagert die fertig angepasste Konfiguration der LTSP-Server
  • /etc/linuxmuster/ltsp_config/clientsS/clients
    In dieser Datei stehen die getaggten Clients (HWAdresse, IP, Name) des Schülernetzes.
    Die Tags legen fest, welches Bootmenü ausgeliefert wird, was also letztendlich gebootet wird.
  • /etc/linuxmuster/ltsp_config/dhcp/dhcp.conf
    Konfigurationsdatei für den DHCP-Server im Lehrernetz.
  • /etc/linuxmuster/ltsp_config/ltspclients
    Hier werden die LTSP-Clients aufgeführt, da diese keinen Workstation-Account auf der paedml benötigen und somit nicht in die workstations-Datei gehören

Wir benutzen den DNSMASQ und nicht wie die LML isc-dhcp-Servers und bind9. Die Start/Stop-Scripte der beiden haben wir unter /etc/init.d unschädlich gemacht, so dass keine Anpassungen mehr am Script selbst erfolgen müssen.

/usr/share/linuxmuster-linbo/update-linbofs.sh

Nach einem Featurerequest unter ​http://www.linuxmuster.net/flyspray/task/427 kann nun eine alternative Server-IP in den Start-conf-Dateien angegeben werden - eine Anpassung im Script ist nicht mehr nötig.

/var/linbo/pxelinux.cfg/

Hier lagern die per TFTP ausgelieferten PXE-Boot-Configs für jede Gruppe. Da wir derzeit per DHCP keinen Dateinamen mit ausliefern wird die IP (in HEX) oder die default genommen. Das passt soweit, da wir keine Besonderheiten an der Hardware haben.

  • /var/linbo/pxelinux.cfg/default
    Default für das Schülernetz, hier steht der APPEND server=10.32.1.1 drin, ansonsten würde LINBO versuchen von dem Server zu booten, von dem es seine IP erhalten hat, das muss schiefgehen :-)
  • Die Clients erhalten ab linuxmuster.net 6.1 hier einen Eintrag in HEX (symlink auf die Datei mit dem Gruppennamen - hier könnte ein alternatives Verhalten erzeugt werden)
  • Clients können hier subnetzweise oder IPweise mit einer eigenen Datei versorgt werden, die Datei muss einfach so heißen wie die IP in HEX

DHCP und DNS

Im grünen Schülernetz fungiert der paedml und alle LTSP-Server als DHCP/DNS (dnsmasq), im Lehrernetz (in allen Subnetzen) nur der dhcp.kg-fds.de (dnsmasq, der hat in jedem Subnetz eine virtuelle Netzwerkkarte).

Die Daten für DHCP/DNS werden von den Scripten /usr/local/sbin/make_ltsp_config und /usr/local/sbin/make_ltsp_config.php aus der /etc/linuxmuster/workstations entnommen, auf die DHCP/DNS-Server geladen und der dnsmasq neu gestartet. Die Scripte taggen die einzelnen Zeilen mit den MAC-Adressen/IP-Zuordnungen, so dass der DHCP individuelle PXE-Bootmenüs rausgeben kann. Der dhcp.kg-fds.de im Lehrernetz tagged auch die dhcp-leases, je nachdem, in welchem Subnetz der Lease ausgegeben wird, so dass individuelle Einstellungen (Defaukltgateway, DNS-Server, Routen, ...) ausgegeben werden können.

/var/linbo/menu.lst.Gruppe

Für jede Gruppe wurde eine solche Datei angelegt, 3 Sekunden hat man dadurch bei lokalem Boot Zeit, Linbo zu umgehen und stattdessen Edubuntu direkt zu booten. Bei jedem rsync (z.B. Cache aktualisieren) wird die Datei auch auf den Client geholt.

Der Linbo-Boot

Bei uns booten alle Clients per PXE von einem der DHCP-Server (der der am schnellsten ist gewinnt). Bei aufgenommenen Clients bieten alle DHCP-Server die gleiche IP und das gleiche PXE-Bootmenü an. Standardmäßig (erster Eintrag) wird LINBO vom paedml gebootet, man kann aber auch Lokal von der Platte (oder das Booten von einem anderen Server) auswählen.

  1. lokaler Boot
    Grub wartet 3 Sekunden, während derer man Edubuntu sofort starten kann - auch Linbo DEBUG steht zur Verfügung. Standard-Boot-Methode ist LINBO zu booten, welches dann auf dem paedml die passende start.conf-IP per rsync holt.
  2. per TFTP vom paedml-Server
    Der PXE-Bootmenüeintrag verweist auf den LINBO-Server (10.32.1.1 oder 10.16.112.4) von dort wird per TFTP das passende Config-File geholt (default oder 0A10), welches auf das zu holende /var/linbo/linbofs.gz oder /var/linbo/linbofs_l.gz verweist. In den Configs ist der APPEND server=10.32.1.1 oder server=10.16.112.4 angegeben, so dass LINBO die Datei vom richtigen Server holt, in der start.conf in linbofs.gz bzw. linbofs_l.gz steht die korrekte IP des Servers. Linbo benutzt diese, wenn der Rechner noch nicht aufgenommen ist und findet so den korrekten Server. Ist der Rechner bereits aufgenommen, so findet LINBO per rsync auf dem paedml die passende start.conf-IP

Danach geht es so weiter, wie in der aktuellen start.conf auf dem Client eingetragen. Linbo bietet nach dem syncen die Möglichkeit, ein Postsync-Script auszuführen (siehe: ​http://www.linuxmuster.net/wiki/anwenderwiki:linbo:postsync_scripte:start). Für die Rechner der TGS ist dieses eingerichtet, da auf den Ubuntu-Clients die LDAP-Anbindung und das PAM_mount nicht von paedml.kg-fds.de erfolgen dürfen, sondern von server.kg-fds.de. Das Script /var/linbo/trusty.cloop.postsync fragt ab, ob der Rechnername mit "tgs-" anfängt und kopiert dann die Dateien unter /var/linbo/Patches/ auf den Client.

Note: See TracWiki for help on using the wiki.