Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
satellite:generisches_modul [2019/02/05 18:09 CET] chrsatellite:generisches_modul [2020/12/07 15:21 CET] chr
Zeile 1: Zeile 1:
-====== Generisches Modul ======+====== Generisches Modul / Konfigmodul ======
  
 'Generische Module' ermöglichen es, beliebige Dateien in das Linux-Grundsystem der Clients einzubringen bzw. vorhandene Dateien zu überschreiben. Notwendig ist dies, wenn Sie z.B. spezielle iptables-Regeln, Druckkonfigurationen oder ähnliche Anpassungen innerhalb des Grundsystems vornehmen möchten.  'Generische Module' ermöglichen es, beliebige Dateien in das Linux-Grundsystem der Clients einzubringen bzw. vorhandene Dateien zu überschreiben. Notwendig ist dies, wenn Sie z.B. spezielle iptables-Regeln, Druckkonfigurationen oder ähnliche Anpassungen innerhalb des Grundsystems vornehmen möchten. 
Zeile 5: Zeile 5:
 Um Generische Module anzulegen sind folgende Schritte nötig: Um Generische Module anzulegen sind folgende Schritte nötig:
  
-===== 1. Archiv vorbereiten =====+===== 1. Archiv erzeugen =====
  
 Legen Sie ein Archiv an, dessen gegebene Verzeichnisstruktur eins zu eins in das gebootete Linux extrahiert wird - eine im Archiv enthaltene Datei etc/beispiel.conf wird im gebooteten System also auch unter /etc/beispiel.conf erscheinen.   Legen Sie ein Archiv an, dessen gegebene Verzeichnisstruktur eins zu eins in das gebootete Linux extrahiert wird - eine im Archiv enthaltene Datei etc/beispiel.conf wird im gebooteten System also auch unter /etc/beispiel.conf erscheinen.  
Zeile 48: Zeile 48:
 Dieses tgz-Archiv kann dann im nächsten Schritt als Generisches Modul auf den Satellitenserver geladen werden. Dieses tgz-Archiv kann dann im nächsten Schritt als Generisches Modul auf den Satellitenserver geladen werden.
  
-<note important>Das Archiv wird im MiniLinux über das Rootverzeichnis entpackt. Achten Sie darauf, dass Sie für Ihre Ordner und Dateien korrekte Berechtigungen setzen.</note>+<note important>Das Archiv wird im MiniLinux über das Rootverzeichnis entpackt. Achten Sie darauf, dass Sie für Ihre Ordner und Dateien korrekte Berechtigungen setzen.\\ \\ Sie können Archive wie oben beschrieben auch unter Windows erstellen. Beachten Sie jedoch unbedingt, daß manche Windows-Packer dazu tendieren, bei Erstellung eines Archives im .tar- oder .tar.gz-Format, die Datei- und Verzeichnisberechtigungen („Permissions“) innerhalb des Archivs unerwünscht zu setzen((Beispiel: Ein mit 7zip erstelltes Archiv zur etc-Hierarchie enthielt (/)etc mit den Berechtigungen 777, was für SSH störende Auswirkungen hat (Schlüsselablehnung). )). Überprüfen Sie daher im Zweifelsfall resultierende Verzeichnis- und Dateirechte per Archivansicht oder auf einem Clientrechner!</note>
  
  
-=== Programmstart ===+=== Automatischer Programmstart ===
  
 Sollten Sie in Ihrem generischen Modul ein Programm((Achtung: Im Falle von Skripten müssen Sie prüfen, on der passende Interpreter vorhanden ist, im Falle von Binaries müssen ggf. dynamisch gelinkte Bibliotheken eingeschlossen werden. Vergessen Sie auch nicht, ggf. das executable-Bit zu setzen.)) abgelegt haben, das automatisch gestartet werden soll, müssen Sie weitere Vorkehrungen treffen. Der empfohlene Weg geht über einen systemd-Service, der zur Erreichung eines bestimmten systemd-Ziels („target“) gestartet wird. Gewöhnliche Optionen sind hier etwa graphical.target, multi-user.target, network-online.target usw.; unten genanntes Beispiel arbeitet mit multi-user.target. Sollten Sie in Ihrem generischen Modul ein Programm((Achtung: Im Falle von Skripten müssen Sie prüfen, on der passende Interpreter vorhanden ist, im Falle von Binaries müssen ggf. dynamisch gelinkte Bibliotheken eingeschlossen werden. Vergessen Sie auch nicht, ggf. das executable-Bit zu setzen.)) abgelegt haben, das automatisch gestartet werden soll, müssen Sie weitere Vorkehrungen treffen. Der empfohlene Weg geht über einen systemd-Service, der zur Erreichung eines bestimmten systemd-Ziels („target“) gestartet wird. Gewöhnliche Optionen sind hier etwa graphical.target, multi-user.target, network-online.target usw.; unten genanntes Beispiel arbeitet mit multi-user.target.
Zeile 57: Zeile 57:
 Erzeugen Sie zuerst die nötigen Unterverzeichnisse, wie oben auf Ihr Arbeitsverzeichnis gen_modul bezogen: Erzeugen Sie zuerst die nötigen Unterverzeichnisse, wie oben auf Ihr Arbeitsverzeichnis gen_modul bezogen:
 <code bash> <code bash>
-mkdir -p etc/systemd/system/multi-user.target+mkdir -p etc/systemd/system/multi-user.target.wants
 </code> </code>
  
Zeile 69: Zeile 69:
 Type=oneshot Type=oneshot
 ExecStart=/Pfad/zu/Ihrem/Programm ExecStart=/Pfad/zu/Ihrem/Programm
- +RemainAfterExit=true
-[Install] +
-WantedBy=multi-user.target+
 </code> </code>
  
Zeile 77: Zeile 75:
  
 <code bash> <code bash>
-cd etc/systemd/system/multi-user.target+cd etc/systemd/system/multi-user.target.wants
 ln -s ../programmstart.service ln -s ../programmstart.service
 cd - cd -
Zeile 98: Zeile 96:
  
  
 +([[satellitenserver_erstkonfiguration#systemkonfiguration_auswaehlen|zurück zur Systemkonfiguration]])
Drucken/exportieren