Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
satellite:generisches_modul [2016/09/12 14:55 CEST] – angelegt simon | satellite:generisches_modul [2019/07/12 17:46 CEST] – chr | ||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
Um Generische Module anzulegen sind folgende Schritte nötig: | Um Generische Module anzulegen sind folgende Schritte nötig: | ||
- | ===== 1. Archiv | + | ===== 1. Archiv |
Legen Sie ein Archiv an, dessen gegebene Verzeichnisstruktur eins zu eins in das gebootete Linux extrahiert wird - eine im Archiv enthaltene Datei etc/ | Legen Sie ein Archiv an, dessen gegebene Verzeichnisstruktur eins zu eins in das gebootete Linux extrahiert wird - eine im Archiv enthaltene Datei etc/ | ||
Zeile 11: | Zeile 11: | ||
Fangen Sie zunächst mit der nötigen Ordnerhierarchie für unser Beispiel an: | Fangen Sie zunächst mit der nötigen Ordnerhierarchie für unser Beispiel an: | ||
<code bash> | <code bash> | ||
- | mkdir -p ~/generic_module/etc/ | + | mkdir -p ~/gen_modul/etc/ |
- | cd ~/generic_module/etc/ | + | cd ~/gen_modul/etc/ |
</ | </ | ||
Zeile 24: | Zeile 24: | ||
Wechseln Sie dann in das von Ihnen angelegte Verzeichnis ~/ | Wechseln Sie dann in das von Ihnen angelegte Verzeichnis ~/ | ||
<code bash> | <code bash> | ||
- | cd ~/generic_module | + | cd ~/gen_modul |
</ | </ | ||
Zeile 40: | Zeile 40: | ||
++++So sollte das Archiv aussehen (Ausklappen)| | ++++So sollte das Archiv aussehen (Ausklappen)| | ||
<code bash> | <code bash> | ||
- | [student ~/generic_module]$ tar tvf beispiel.tgz | + | [student ~/gen_modul]$ tar tvf beispiel.tgz |
drwxr-xr-x student/ | drwxr-xr-x student/ | ||
-rw-r--r-- student/ | -rw-r--r-- student/ | ||
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. | ||
- | ===== 2. Neues Modul hochladen ===== | + | <note important> |
- | Das Archiv muss anschließend über das Webinterface Ihres Satellitenservers hochgeladen werden. Wechseln Sie dazu zur Seite ' | ||
- | ===== 3. Client neustarten und überprüfen ===== | + | === Automatischer Programmstart |
- | Starten | + | Sollten |
+ | |||
+ | Erzeugen Sie zuerst die nötigen Unterverzeichnisse, | ||
<code bash> | <code bash> | ||
- | cat /etc/beispiel.conf | + | mkdir -p etc/systemd/ |
</ | </ | ||
+ | ... und legen eine Datei etc/ | ||
- | ===== Spezialfall: | + | < |
+ | [Unit] | ||
+ | Description=Mein Programm XYZ | ||
- | Generische Module werden immer an alle Clients ausgeliefert. Manchmal möchten Sie jedoch nur bestimmte Clients mit Konfigurationen versorgen. Durch einen kleinen Umweg ist auch dies möglich. | + | [Service] |
+ | Type=oneshot | ||
+ | ExecStart=/ | ||
- | Alle Ordner für lokale Konfigurationen innerhalb Ihres vorbereiteten Archivs, müssen unter ' | + | [Install] |
+ | WantedBy=multi-user.target | ||
+ | </code> | ||
+ | |||
+ | Abschließend müssen Sie noch ein Link im target-Unterverzeichnis anlegen: | ||
- | Die Ordnerhierarchie verändert sich für unser Beispiel also fogendermaßen: | ||
<code bash> | <code bash> | ||
- | mkdir -p ~/generic_module/openslx-configs/ | + | cd etc/systemd/system/ |
- | cd ~/ | + | ln -s ../programmstart.service |
+ | cd - | ||
</ | </ | ||
+ | Das Packen und Prüfen der tgz-Datei erfolgt analog zum obigen Beispiel. | ||
- | Zusätzlich müssen Sie die Datei '/ | ||
- | <file php client_config_additional.php> | ||
- | <?php | ||
- | $ip = $_SERVER[' | ||
- | if (substr($ip, | ||
- | $ip = substr($ip, 7); | ||
- | } | ||
+ | ===== 2. Neues Modul hochladen ===== | ||
- | // Client X | + | Das Archiv muss anschließend über das Webinterface Ihres Satellitenservers hochgeladen werden. Wechseln Sie dazu zur Seite ' |
- | // Config = spezialfall1 | + | |
- | if ($ip === '192.168.192.50') { | + | <note important> |
- | echo " | + | ===== 3. Client neustarten und überprüfen ===== |
- | } | + | |
+ | Starten Sie einen bwLehrpool-Client, | ||
+ | <code bash> | ||
+ | cat / | ||
+ | </ | ||
- | // Raum A | ||
- | // 192.168.192.[1-10] | ||
- | // Config = spezialfall1 und spezialfall2 (es sind auch mehrere Konfigurationen kombinierbar) | ||
- | if (preg_match('/ | ||
- | | ||
- | } | ||
- | // Client Y, Z | ||
- | // Config = spezialfall2 | ||
- | if ($ip === ' | ||
- | echo " | ||
- | } | ||
- | </ | ||
- | <note important> |