Änderungen von Dokument Eigene Autoconf-Rolle erstellen
Zuletzt geändert von Tom Altenbrunn am 2023/03/17 08:03
Von Version 17.1
bearbeitet von Jonas Mayer
am 2023/03/15 13:28
am 2023/03/15 13:28
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 12.1
bearbeitet von Jonas Mayer
am 2023/03/15 09:28
am 2023/03/15 09:28
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
-
Anhänge (0 geändert, 0 hinzugefügt, 2 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -1,96 +1,18 @@ 1 -Autoconf liegt wie der Vorgänger Ansible im ctrl-g1 Container und dient dazu, individuelleEinstellungenwährenddesDeployments aufRechner zuübertragen. Es könnenüberdiesenMechanismus nachträglich auch kleinereAnpassungenan Clientsübertragenwerden, ohnedafüreinneuesImage aufden Serverhochzuladen.Somit lassen sichlativ einfach und flexibel diverse Anpassungen an bestehenden Clients vornehmen.1 +Autoconf liegt wie der Vorgänger Ansible im ctrl-g1 Container und dient dazu, Einstellungen oder Konfigurationen auf die deployten Rechner zu übertragen, ohne ein Image dafür zu schreiben. 2 2 3 -LogoDIDACT ist standardmäßig bereits mit zahlreichen Autoconf-Rollen bestückt, die mitgeliefert werden, um ein möglichst breites Spektrum verschiedenster Anforderungen des allgemeinen Schulbetriebs abzudecken. 4 -Diese fest integrierten Rollen befinden sich im LXC-Container ctrl-g1 im Pfad {{box}}/usr/lib/ld-autoconf/logodidact/roles/{{/box}}. 3 +Von SBE ausgelieferte Rollen befinden sich Im Pfad {{box}}/usr/lib/ld-autoconf/logodidact/roles/{{/box}}. 5 5 6 - [[image:image-20230315103418-1.png||height="103"width="1344"class="img-thumbnail"]]5 +Selbst erstellte Autoconf-Rollen müssen unter {{box}}/data/ld/autoconf/custom{{/box}} (bzw. früher vor Puppet-Version 1.5.x unter {{box}}/var/lib/ld-autoconf/custom/{{/box}}) abgelegt werden, damit diese nicht durch Updates überschrieben werden. 7 7 7 +Der Aufbau einer Autoconf-Rolle muss einer Struktur folgen, damit der Server diese Interpretieren kann. 8 8 9 - Darüberinausistes Partnernund Kunden möglich, für spezielle/ anwendungsspezifischeAnforderungen eigeneAutoconf-Rollen zu erstellen undim LD Control Center mitClientszu verknüpfen. Dafür stehtamLD-Server eineigenes Verzeichniszur Verfügung, welches sich ebenfalls im LXC-Containerctrl-g1befindet undnichtdurch Server-Updatesbeeinflusst oderüberschriebenwird. DergenaueSpeicherpfadhängtvonderPuppet-VersiondesServers ab:9 +Unterhalb der Regel muss ein Ordner mit Namen {{box}}meta{{/box}} mit einer {{box}}logodidact.yml{{/box}} liegen. In dieser Datei sind Name, Beschreibung, Ersteller sowie weitere Informationen zur Autoconf-Rolle festgelegt. 10 10 11 -* bis Puppet-Version **1.4.x** : {{code language="bash"}}/var/lib/ld-autoconf/custom/{{/code}} 12 -* ab Puppet-Version **1.5.x **: {{code language="bash" layout="LINENUMBERS"}}/data/ld/autoconf/custom/{{/code}} 13 13 14 - DerAufbau einer Autoconf-Rolle unterliegt einer vordefinierten Struktur, bestehend aus einerBeschreibungsdatei{{box}}meta/logodidact.yml{{/box}}, welche die Informationen zuNamen, Beschreibung, Ersteller, Variablen,usw.definiert,sowie zugehörige Skript-Dateien (PowerShell). Diese Skript-Dateien müssen - abhängig vom vorgesehen Ziel-Betriebssystem - in einem Unterordner {{box}} win/ {{/box}} (//Windows//) oder {{box}} lin/ {{/box}} (//Linux//)abgespeichertsein.Zusätzlich besteht auch die Möglichkeit, in einemweiteren Unterordner {{box}} files/{{/box}} beliebige Dateien in der Autoconf-Rolle mitzuliefern, wie zum Beispiel Bilder, Videos, etc.12 +==== **Beispielaufbau der logodidact.yml:** ==== 15 15 16 -Der strukturelle Aufbau ist nachfolgend ersichtlich:[[image:image-20230315120842-3.png||height="213" width="640"]] 17 - 18 - 19 - 20 -Für die Funktionalität der Autoconf-Rolle ist es also nötig, PowerShell-Skripte am Server abzuspeichern, die die Instruktionen an den Arbeitsstationen ausführen. Für diese Skripte sind folgende Dateinamen zulässig: 21 - 22 -* **main.ps1** - Skript wird in allen Phasen ausgeführt, die innerhalb der Beschreibungsdatei {{box}}meta/logodidact.yml{{/box}} festgelegt sind 23 -* (% style="color:#8e44ad" %)**setup.ps1**(%%) - Skript wird ausschließlich in der SETUP-Phase während des Deployments ausgeführt. In der Setup-Phase ist der Client noch veränderlich und besitzt noch keine Schutzfunktion, selbst wenn der Schutz aktiviert ist. 24 -* (% style="color:#8e44ad" %)**custom.ps1**(%%) - Skript wird ausschließlich in der CUSTOM-Phase ausgeführt. Dies geschieht sowohl 1x während des Deployments als auch später nach jedem Hochfahren des PCs 1x im Hintergrund. 25 -* (% style="color:#8e44ad" %)**user.ps1**(%%) - Skript wird ausschließlich in der USER-Phase ausgeführt. Diese Phase wird nicht direkt während des Deployments durchlaufen, sondern erst später während der Benutzeranmeldung an betriebsbereiten PCs. 26 -* (% style="color:#8e44ad" %)**audit.ps1**(%%) - Skript wird ausschließlich in der AUDIT-Phase ausgeführt. Das bedeutet, erst dann, wenn man an einem Client in den Audit-Modus zur Imagebearbeitung wechselt. 27 -* **collect.ps1** - Sonderfall. Dieses Skript wird ausgeführt, wenn durch einen Anwender aktiv die Phase COLLECT zum Einsammeln von Einstellungen am Client aufgerufen wird. 28 - 29 -(% class="box warningmessage" %) 30 -((( 31 -(% style="font-size:12px" %)**Hinweis: **Skripte, die durch ihren Dateinamen auf einzelne Phasen eingeschränkt sind ((% style="color:#8e44ad; font-size:12px" %)lila eingefärbt(% style="font-size:12px" %)), dürfen sich inhaltlich zueinander unterscheiden. Dadurch kann eine Autoconf-Rolle sehr flexibel gestaltet werden und in den verschiedenen Phasen des Deployments unterschiedliche Aktionen ausführen. 32 -))) 33 - 34 - 35 ----- 36 - 37 -==== **Beispielaufbau einer logodidact.yml:** ==== 38 - 39 -Eine Autoconf-Beispielvorlage liegt serverseitig im Unterordner {{box}}/data/ld/autoconf/custom/example/{{/box}} abgespeichert. Darin wird die Verwendung verschiedener Variablentypen aufgezeigt, die als Parameter an die Skript-Dateien weitergegeben werden können. Die Verwendung solcher Variablen innerhalb einer Autoconf-Rolle ist optional, je nach Zweck jedoch häufig sinnvoll. 40 - 41 - 42 -**Beispiel zur Deklaration einer Autoconf Variable in logodidact.yml:** 43 - 44 44 (% class="box" %) 45 45 ((( 46 -ld_info: 47 - display_name: Meine eigene Autoconf-Rolle 1 48 -(% style="color:#27ae60" %) # [...](%%) 49 -\\ vars: 50 - globalLogLevel: 51 - display_name: Loglevel 52 - optional: true 53 - type: ENUM 54 - values: 55 - - none 56 - - compact 57 - - detailed 58 - - verbose 59 -\\(% style="color:#27ae60" %) # [...] 60 -))) 61 - 62 -(% class="box infomessage" %) 63 -((( 64 -(% style="font-size:12px" %)**Tipp:** Der Variablentyp ENUM aus dem Beispiel ergibt ein Dropdown-Menü, in dem man aus den vordefinierten 4 Werten (none / compact / detailed / verbose) auswählen kann. 65 -))) 66 - 67 ----- 68 - 69 -==== **Neue AutoConf-Rollen nach Fertigstellung freigeben** ==== 70 - 71 -Neue Autoconf-Rollen können am Server durch Aufruf des Befehls {{box}}update-autoconf-archive{{/box}} im LXC ctrl-g1 aktualisiert werden. Der Aufruf dieses Kommandos ist auch nach Änderungen an Autoconf-Rollen nötig. 72 -Alternativ werden alle Autoconf-Rollen auch zeitbasiert alle 4 Stunden am Server eingelesen. Dies passiert automatisch im Hintergrund. 73 - 74 -Betätigen Sie außerdem im LD Control Center (mit aktiviertem Expertenmodus) den Reiter "AutoConf Rollen neu einlesen", damit selbst hinzugefügte Autoconf-Rollen verfügbar werden. 75 - 76 -(% class="box infomessage" %) 77 -((( 78 -Der Expertenmodus wird in den **Einstellungen (Zahnrad oben rechts) -> Entwickleroptionen -> Expertenmodus aktivieren** aktiv geschaltet. 79 -))) 80 - 81 -[[image:attach:autoconf.png||data-xwiki-image-style-border="true" class="img-thumbnail"]] 82 - 83 - 84 - 85 ----- 86 - 87 - 88 -==== **Weiteres, funktionsfertiges Beispiel: Rolle „WLAN Profil mit PSK anlegen“** ==== 89 - 90 -Zum besseren Verständnis wird nachfolgend eine mitgelieferte Autoconf-Rolle zur Konfiguration eines WLAN-Profils (SSID inkl. PSK) an Clients näher beleuchtet. 91 - 92 -(% class="box" %) 93 -((( 94 94 root@ctrl-g1:~~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/meta/logodidact.yml 95 95 ))) 96 96 ... ... @@ -100,15 +100,15 @@ 100 100 authors: 101 101 - Marcel Petersen 102 102 company: SBE network solutions GmbH 103 - (%style="color:#1abc9c"%)display_name:(%%)WLAN Profil mit PSK anlegen25 + display_name: WLAN Profil mit PSK anlegen 104 104 license: SBE 105 - (%style="color:#8e44ad"%)uuid:(%%)52318636-c4f5-11ea-baf9-0bff00c66ff427 + uuid: 52318636-c4f5-11ea-baf9-0bff00c66ff4 106 106 visible: true 107 107 priority: 0 108 108 applyAlways: false 109 - (%style="color:#f1c40f"%)tags:(%%)31 + tags: 110 110 - CUSTOM 111 - (%style="color:#e74c3c"%)vars:(%%)33 + vars: 112 112 ssid: 113 113 display_name: SSID 114 114 optional: false ... ... @@ -117,32 +117,75 @@ 117 117 display_name: Passwort 118 118 optional: false 119 119 type: PASSWORD 120 - (%style="color:#2980b9"%)systems:(%%)42 + systems: 121 121 - WINDOWS 122 122 - LINUX 123 123 ))) 124 124 125 - (% style="color:#1abc9c" %)display_name(%%)= Anzeigename der Autoconf-Rolle im LD Control Center47 +display_name = Anzeigename der Autoconf-Rolle im LD Control Center 126 126 127 - (% style="color:#8e44ad" %)uuid(%%)= ID der Autoconf-Regel.Muss einmalig sein. Bei einer eigenen Autoconf-Rolle sollte der Wert am besten neu generiert werden. [[https:~~/~~/www.uuidgenerator.net/>>url:https://www.uuidgenerator.net/]]49 +uuid = ID der Autoconf-Regel, muss einmalig sein. Bei einer eigenen Autoconf-Rolle sollte der Wert am besten neu generiert werden. [[https:~~/~~/www.uuidgenerator.net/>>url:https://www.uuidgenerator.net/]] 128 128 129 - (% style="color:#f1c40f" %)tags(%%)= beschreibt, in welchen Phasen die Autoconf-Regel ausgeführt wird.51 +tags = beschreibt, in welchen Phasen die Autoconf-Regel ausgeführt wird. 130 130 131 - (%style="color:#e74c3c" %)vars(%%)=definiertmöglicheVariablen,diedenSkripten übergebenwerden53 +systems = Legt fest, welche Betriebssystem-Typen durch die Autoconf-Rolle unterstützt werden. Gültige Systeme sind: WINDOWS / LINUX 132 132 133 -* display_name = Name der konfigurierbaren Variable im Control Center 134 -* optional = bestimmt, ob die Variable zwingend mit einem Wert belegt werden muss 135 -* type = bestimmt den Typ der Variable. Gültige Typen sind: STRING, PASSWORD, BOOLEAN, ENUM, ARRAY, INTEGER 136 -* example = Zeigt einen grau eingefärbten Beispieltext innerhalb der definierten Variable an, ohne dass dieser als Wert festgelegt ist (Hilfsmittel für Anwender). 55 +vars = definiert mögliche Variablen, die den Skripten übergeben werden 137 137 138 - (%style="color:#2980b9"%)systems(%%)=Legt fest, welche Betriebssystem-Typendurchdie Autoconf-Rolleunterstützt werden.GültigeSystemesind WINDOWS / LINUX. Die Rolleaus dem Beispiel unterstützt beide Betriebssysteme gleichzeitig.57 + ~* display_name = Name der konfigurierbaren Variable im Control Center 139 139 59 + ~* example = Zeigt einen grau eingefärbten Beispieltext innerhalb Variable an, ohne dass dieser als Wert festgelegt ist (Hilfsmittel für Anwender). 140 140 141 - =====**Aufbauder main.ps1**=====61 + ~* optional = bestimmt, ob die Variable zwingend mit einem Wert belegt werden muss 142 142 143 - ImVerzeichnis {{box}}win/{{/box}} könnensichunterschiedliche Powershell-Skriptebefinden.IndieserRolle liegt das allgemeingültigeSkriptmain.ps1vor.63 + ~* type = bestimmt den Typ der Variable. Gültige Typen sind: STRING, PASSWORD, BOOLEAN, ENUM, ARRAY, INTEGER 144 144 145 -{{code width="50%"}} 65 + 66 +**Beispiel für eine Variable:** 67 + 68 +(% class="box" %) 69 +((( 70 +globalLogLevel: 71 + display_name: Loglevel 72 + optional: true 73 + type: ENUM 74 + values: 75 + - none 76 + - compact 77 + - detailed 78 + - full 79 +))) 80 + 81 +(% style="font-size:12px" %)**Tipp:** Der Variablentyp ENUM aus dem Beispiel entspricht einem Dropdown-Menü, in dem man aus vordefinierte Werte auswählen kann: 82 + 83 + 84 +Für die Funktionalität der Autoconf-Rolle ist es nötig, PowerShell-Skripte am Server abzuspeichern, die die Instruktionen an den Arbeitsstationen ausführen. Diese Skripte liegen unterhalb der Autoconf-Rolle im Verzeichnis {{box}}win{{/box}}. Darin sind folgende Dateinamen zulässig: 85 + 86 +* **main.ps1** - Skript wird in allen Phasen ausgeführt, die innerhalb der Beschreibungsdatei {{box}}meta/logodidact.yml{{/box}} festgelegt sind 87 +* (% style="color:#8e44ad" %)**setup.ps1**(%%) - Skript wird ausschließlich in der SETUP-Phase während des Deployments ausgeführt. 88 +* (% style="color:#8e44ad" %)**custom.ps1**(%%) - Skript wird ausschließlich in der CUSTOM-Phase während des Deployments ausgeführt. 89 +* (% style="color:#8e44ad" %)**user.ps1**(%%) - Skript wird ausschließlich in der USER-Phase während des Deployments ausgeführt. 90 +* (% style="color:#8e44ad" %)**audit.ps1**(%%) - Skript wird ausschließlich in der AUDIT-Phase während des Deployments ausgeführt. 91 +* **collect.ps1** - Sonderfall. Dieses Skript wird ausgeführt, wenn durch einen Anwender aktiv die Phase COLLECT zum Einsammeln von Einstellungen am Client aufgerufen werden. 92 + 93 +(% style="font-size:12px" %)**Hinweis: **Skripte, die durch ihren Dateinamen auf die einzelnen Phasen eingeschränkt sind ((% style="color:#8e44ad; font-size:12px" %)lila eingefärbt(% style="font-size:12px" %)), können sich inhaltlich zueinander unterscheiden. Dadurch kann eine Autoconf-Rolle sehr flexibel gestaltet werden. 94 + 95 + 96 +==== **Beispielaufbau der main.ps1** ==== 97 + 98 +Im win-Verzeichnis können sich unterschiedliche Powershellskripte befinden. Der jeweilige Name der .ps1 Datei gibt an zu welcher Phase die Datei ausgeführt wird. 99 + 100 +{{code}} 101 +user.ps1 = user Phase, nach der Anmeldung 102 + 103 +custom.ps1 = custom Phase 104 + 105 +audit.ps1 = audit Phase 106 + 107 +setup.ps1 = setup Phase 108 + 109 +main.ps1 = alle Phasen 110 + 146 146 root@ctrl-g1:~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1 147 147 148 148 Param ... ... @@ -198,21 +198,17 @@ 198 198 Remove-Item -Path $file -Force 199 199 } 200 200 201 -Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokale nVariablen.166 +Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokale Variablen. 202 202 {{/code}} 203 203 204 204 ==== ==== 205 205 206 -==== ==== 171 +==== **Neue AutoConf-Rollen freigeben** ==== 207 207 208 -==== ==== 173 +Neue Autoconf-Rollen müssen am Server durch Aufruf des Befehls {{box}}update-autoconf-archive{{/box}} im LXC ctrl-g1 aktualisiert werden. Der Aufruf dieses Kommandos ist auch nach Änderungen an Autoconf-Rollen nötig. 174 +Alternativ werden alle Autoconf-Rollen auch zeitbasiert alle 4 Stunden am Server eingelesen. Dies passiert automatisch im Hintergrund. 209 209 210 - ========176 +Betätigen Sie außerdem im LD Control Center (mit aktiviertem Expertenmodus) folgenden Knopf, damit selbst hinzugefügte Autoconf-Rollen verfügbar werden. 211 211 212 -==== ==== 213 - 214 -==== ==== 215 - 216 -==== ==== 217 - 218 -==== ==== 178 +[[image:attach:autoconf.png||data-xwiki-image-style-border="true"]] 179 +
- image-20230315103418-1.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.TomAltenbrunn@sbede - Größe
-
... ... @@ -1,1 +1,0 @@ 1 -25.1 KB - Inhalt
- image-20230315120842-3.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.TomAltenbrunn@sbede - Größe
-
... ... @@ -1,1 +1,0 @@ 1 -34.9 KB - Inhalt