Skip to content
This repository has been archived by the owner on Nov 19, 2023. It is now read-only.

Wie funktioniert der postsync?

T. Küchel edited this page Jul 6, 2020 · 4 revisions

Der Postsync-Mechanismus

Ein Teil des synchronisierten Starts durch LINBO ist der Aufruf individueller Skripte, der sogenannten postsync-Skripte.

Das Postsync-Skript hat denselben Namen wie das CLOOP-Image mit der Endung .postsync statt .cloop

Es wurde ein universelles Postsync-Skript erstellt, dessen Verwendung sehr empfohlen wird und das durch Verwendung des empfohlenen servertools auch automatisch an die richtige Stelle installiert wird.

Das universelle Postsync-skript

  • es kann eines pro CLOOP-Image bestehen
  • loggt seine Aktionen in das Dateisystem des Clients nach /mnt/var/log/postsync.log.
  • bestimmt die Rechnergruppe des Clients
  • versucht, den Raum des Clients zu bestimmen
  • definiert eine PATCHKLASSE, die normalerweise dem CLOOP-Namen entspricht
  • synchronisiert alle Dateien der Patchklasse aus dem Server-Verzeichnis /srv/linbo/linuxmuster-client/PATCHKLASSE/ in den LINBO-Cache des Clients. Dabei müssen alle Dateien auf dem Server lesbar sein für den LINBO-User auf dem Server.
  • synchronisiert alle Dateien aus dem LINBO-Cache des Clients in dessen Root-Verzeichnis des Zielsystems.
  • bei der Synchronisation werden spezielle tar-PAkete entpackt und Dateien und tar-Pakete nach der Hierarchie
    • jeder Client
    • nur der Client dieses Raumes (wenn einer oben erkannt wurde)
    • nur der Client mit diesem Hostnamen aus dem CAche entpackt bzw. kopiert.
  • es werden weitere postsync-Skripte aus einem Verzeichnis postsync.d nachgeladen (source) und dadurch ausgeführt.
  • zuletzt wird im Client verschiedene Zustände in Dateien hinterlassen
    • /.linbo im Client enthält den Namen des CLOOPs
    • /.hostgroup im Client enthält den Namen der Rechnergruppe
    • /.description im Client enthält die Beschreibung des CLOOPs aus dessen .desc-Datei
    • /.lastsync enthält den Zeitstempel, wann dieser Client zuletzt synchronisiert wurde

Verteilte Postsync-Skripte postsync.d

Im Verzeichnis /srv/linbo/linuxmuster-client/patchklasse/common/postsync.d/ können weitere Skripte abgelegt werden, die alphanumerisch abgearbeitet werden, daher ist die Namenskonvention Ziffer_skriptname sinnvoll.

vom Paket linuxmuster-client-servertools vorgegebene Skripte

Ein paar wenige Skripte werden vom Paket linuxmuster-client-servertools mit Hilfe des Befehls linuxmuster-client [configure|auto] in das Patchklassenverzeichnis installiert, dabei handelt es sich um weitere generische Skripte, die bei den meisten Linuxdistributionen Dinge korrigieren, die speziell für den LINBO-Start korrigiert werden müssen und aus dem Vorlagenverzeichnis ins Patchklassenverzeichnis kopiert und an das System angepasst werden, u.a.

usr/lib/linuxmuster-client-servertools/generic.postsync.d/00-lcst-fix-initrd: Behebt Probleme, die mit Links auf Kernel und initramdisk auftraten/auftreten können.

usr/lib/linuxmuster-client-servertools/generic.postsync.d/01-lcst-setlocalpasswords: Setzt lokale Passwörter von Benutzern, wie linuxadmin, wenn in der Datei /passwords auf der Rootpartition des Clients Benutzername|Crypthashes abgespeichert werden, z.B.

linuxadmin|$6$Ilf0o6na$HAqwtPWv/ytOrCat0aQ0T07SjVsLZHngZ9CWiGInhgfT7zJnB/FA9b54awyPOV9bvKwT9Yk5/U5ezS5r/

usr/lib/linuxmuster-client-servertools/generic.postsync.d/03-lcst-fix-fstab: ersetzt in der fstab nach vorgegebenem device/Label die Root-Partition, swap-Partitionen werden entfernt.

usr/lib/linuxmuster-client-servertools/generic.postsync.d/04-lcst-generate-hosts: setzt mit Hilfe eines Templates die Datei /etc/hosts auf einen Client-individuellen Status.

usr/lib/linuxmuster-client-servertools/generic.postsync.d/09-lcst-fix-permissions: korrigiert Zugriffsrechte und Besitzer von Dateien und Verzeichnissen, die zwangsläufig durch die Kopie vom Server die falschen Rechte besitzen (z.B. sshd-config)

eigene verteilte Postsync-Skripte

Jeder kann nach dem Muster oben eigene Skripte im Verzeichnis /srv/linbo/linuxmuster-client/patchklasse/common/postsync.d/ für die Korrektur seines Cloop-Images pflegen. Dabei kann auf die Variablen und Funktionen aus LINBO zugegriffen werden.