Änderungen von Dokument Eigene Autoconf-Rolle erstellen
Zuletzt geändert von Tom Altenbrunn am 2023/03/17 08:03
Von Version 19.1
bearbeitet von Tom Altenbrunn
am 2023/03/15 14:08
am 2023/03/15 14:08
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 4.1
bearbeitet von Christian Germann
am 2022/10/04 10:52
am 2022/10/04 10:52
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (3 geändert, 0 hinzugefügt, 0 gelöscht)
-
Anhänge (0 geändert, 0 hinzugefügt, 3 gelöscht)
Details
- Seiteneigenschaften
-
- Titel
-
... ... @@ -1,1 +1,1 @@ 1 -Eigene Autoconf-R olle erstellen1 +Eigene Autoconf-Regel erstellen - Dokument-Autor
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. TomAltenbrunn@sbede1 +XWiki.cge@sbede - Inhalt
-
... ... @@ -1,111 +1,21 @@ 1 - {{toc depth="3"/}}1 +Autoconf liegt wie der Vorgänger Ansible im ctrl-g1 Container und dient dazu Einstellungen oder Konfigurationen auf die deployten Rechner ohne ein Image dafür zu schreiben. 2 2 3 +Von SBE ausgelieferte Rollen befinden sich Im Pfad {{box}}/usr/lib/ld-autoconf/logodidact/roles/{{/box}}. 3 3 4 - =(%style="font-size:22px"%)__**Allgemeines**__(%%)=5 +Selbst erstellte Autoconf-Rollen müssen unter {{box}}/var/lib/ld-autoconf/custom/{{/box}} abgelegt werden, damit diese nicht durch Updates überschrieben werden. 5 5 7 +Der Aufbau einer Autoconf-Regel muss einer Struktur folgen, damit der Server diese Interpretieren kann. 6 6 7 - Autoconf liegtwie derVorgänger Ansibleimctrl-g1 Containerunddientdazu, individuelle Einstellungen währenddes Deploymentsauf Rechnerzu übertragen. Es können überdiesen Mechanismus nachträglichauch kleinereAnpassungen an Clients übertragen werden,ohnedafür ein neues Image aufden Server hochzuladen.Somitlassensich relativeinfach und flexibel diverse Anpassungenan bestehenden Clients vornehmen.9 +Unterhalb der Regel muss ein Ordner mit Namen {{box}}meta{{/box}} mit einer {{box}}logodidact.yml{{/box}} liegen. 8 8 9 -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. 10 -Diese fest integrierten Rollen befinden sich im LXC-Container ctrl-g1 im Pfad {{box}}/usr/lib/ld-autoconf/logodidact/roles/{{/box}}. 11 11 12 - [[image:image-20230315103418-1.png||height="103"width="1344"class="img-thumbnail"]]12 +==== **Beispielaufbau der logodidact.yml:** ==== 13 13 14 - 15 -Darüber hinaus ist es Partnern und Kunden möglich, für spezielle / anwendungsspezifische Anforderungen eigene Autoconf-Rollen zu erstellen und im LD Control Center mit Clients zu verknüpfen. Dafür steht am LD-Server ein eigenes Verzeichnis zur Verfügung, welches sich ebenfalls im LXC-Container ctrl-g1 befindet und nicht durch Server-Updates beeinflusst oder überschrieben wird. Der genaue Speicherpfad hängt von der Puppet-Version des Servers ab: 16 - 17 -* bis Puppet-Version **1.4.x** : {{code language="bash"}}/var/lib/ld-autoconf/custom/{{/code}} 18 -* ab Puppet-Version **1.5.x **: {{code language="bash" layout="LINENUMBERS"}}/data/ld/autoconf/custom/{{/code}} 19 - 20 -Der Aufbau einer Autoconf-Rolle unterliegt einer vordefinierten Struktur, bestehend aus einer Beschreibungsdatei {{box}}meta/logodidact.yml{{/box}}, welche die Informationen zu Namen, 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//) abgespeichert sein. Zusätzlich besteht auch die Möglichkeit, in einem weiteren Unterordner {{box}} files/ {{/box}} beliebige Dateien in der Autoconf-Rolle mitzuliefern, wie zum Beispiel Bilder, Videos, etc. 21 - 22 -__Der strukturelle Aufbau eines AutoConf-Verzeichnisses grafisch dargestellt:__ 23 - 24 -[[image:attach:autoconf-struktur.PNG||data-xwiki-image-style-border="true" data-xwiki-image-style-text-wrap="true" height="348" width="642" class="img-thumbnail"]] 25 - 26 ----- 27 - 28 -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: 29 - 30 -* **main.ps1** - Skript wird in allen Phasen ausgeführt, die innerhalb der Beschreibungsdatei {{box}}meta/logodidact.yml{{/box}} festgelegt sind 31 -* (% 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. 32 -* (% 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. 33 -* (% 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. 34 -* (% 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. 35 -* **collect.ps1** - Sonderfall. Dieses Skript wird ausgeführt, wenn durch einen Anwender aktiv die Phase COLLECT zum Einsammeln von Einstellungen am Client aufgerufen wird. 36 - 37 -(% class="box warningmessage" %) 38 -((( 39 -(% 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. 40 -))) 41 - 42 - 43 ----- 44 - 45 -= (% style="font-size:22px" %)__**Beispielaufbau einer logodidact.yml**__(%%) = 46 - 47 - 48 -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. 49 - 50 -== (% style="font-size:16px" %)**Beispiel zur Deklaration einer Autoconf Variable in logodidact.yml**(%%) == 51 - 52 52 (% class="box" %) 53 53 ((( 54 -ld_info: 55 - display_name: Meine eigene Autoconf-Rolle 1 56 -(% style="color:#27ae60" %) # [...](%%) 57 -\\ vars: 58 - globalLogLevel: 59 - display_name: Loglevel 60 - optional: true 61 - type: ENUM 62 - values: 63 - - none 64 - - compact 65 - - detailed 66 - - verbose 67 -\\(% style="color:#27ae60" %) # [...] 68 -))) 69 - 70 -(% class="box infomessage" %) 71 -((( 72 -**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. 73 -))) 74 - 75 - 76 ----- 77 - 78 -= (% style="font-size:22px" %)__**Neue AutoConf-Rollen nach Fertigstellung freigeben**__(%%) = 79 - 80 - 81 -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. 82 -Alternativ werden alle Autoconf-Rollen auch zeitbasiert alle 4 Stunden am Server eingelesen. Dies passiert automatisch im Hintergrund. 83 - 84 -Über den Button "AutoConf Rollen neu einlesen" im LD Control Center (mit aktiviertem Expertenmodus) werden die neu erstellten Rollen im Anschluss sichtbar und sind wie gewohnt Betriebssystemen zuordenbar. 85 - 86 -(% class="box infomessage" %) 87 -((( 88 -Der Expertenmodus wird in den **Einstellungen (Zahnrad oben rechts) -> Entwickleroptionen -> Expertenmodus aktivieren** aktiv geschaltet. 89 -))) 90 - 91 -[[image:attach:autoconf.png||data-xwiki-image-style-border="true" class="img-thumbnail"]] 92 - 93 - 94 - 95 ----- 96 - 97 -= (% style="font-size:22px" %)__**Weiteres, funktionsfertiges Beispiel: Rolle „WLAN Profil mit PSK anlegen“**__(%%) = 98 - 99 - 100 -Zum besseren Verständnis wird nachfolgend eine mitgelieferte Autoconf-Rolle zur Konfiguration eines WLAN-Profils (SSID inkl. PSK) an Clients näher beleuchtet. 101 - 102 -(% class="box" %) 103 -((( 104 104 root@ctrl-g1:~~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/meta/logodidact.yml 105 105 ))) 106 106 107 -== (% style="font-size:16px" %)** Struktureller Aufbau der logodidact.yml**(%%) == 108 - 109 109 (% class="box" %) 110 110 ((( 111 111 ld_info: ... ... @@ -112,15 +112,15 @@ 112 112 authors: 113 113 - Marcel Petersen 114 114 company: SBE network solutions GmbH 115 - (%style="color:#1abc9c"%)display_name:(%%)WLAN Profil mit PSK anlegen25 + display_name: WLAN Profil mit PSK anlegen 116 116 license: SBE 117 - (%style="color:#8e44ad"%)uuid:(%%)52318636-c4f5-11ea-baf9-0bff00c66ff427 + uuid: 52318636-c4f5-11ea-baf9-0bff00c66ff4 118 118 visible: true 119 119 priority: 0 120 120 applyAlways: false 121 - (%style="color:#f1c40f"%)tags:(%%)31 + tags: 122 122 - CUSTOM 123 - (%style="color:#e74c3c"%)vars:(%%)33 + vars: 124 124 ssid: 125 125 display_name: SSID 126 126 optional: false ... ... @@ -129,35 +129,60 @@ 129 129 display_name: Passwort 130 130 optional: false 131 131 type: PASSWORD 132 - (%style="color:#2980b9"%)systems:(%%)42 + systems: 133 133 - WINDOWS 134 134 - LINUX 135 135 ))) 136 136 137 - (%style="color:#1abc9c"%)**display_name**(%%)=AnzeigenamederAutoconf-RolleimLDControlCenter47 +uuid = ID der Autoconf-Regel, muss einmalig sein. Bei einer eigenen Autoconf-Regel sollte der Wert am besten neugeneriert werden. [[https:~~/~~/www.uuidgenerator.net/>>url:https://www.uuidgenerator.net/]] 138 138 139 - (% style="color:#8e44ad"%)**uuid**(%%)=ID der Autoconf-Regel. Muss einmaligsein.Beieiner eigenenAutoconf-Rollesollteder Wertam besten neu generiertwerden. [[https:~~/~~/www.uuidgenerator.net/>>url:https://www.uuidgenerator.net/]]49 +tags = beschreibt in welcher Phase die Autoconf-Regel aktiv ist. 140 140 141 - (% style="color:#f1c40f" %)**tags**(%%)=beschreibt,in welchenPhasendieAutoconf-Regel ausgeführtwird.51 +vars = definiert Variablen die den Skripten übergeben werden 142 142 143 - (%style="color:#e74c3c"%)**vars**(%%)****=definiertmöglicheVariablen,dieden Skripten übergeben werden53 +display_name = Name der Variable im ctrl 144 144 145 -* display_name = Name der konfigurierbaren Variable im Control Center 146 -* optional = bestimmt, ob die Variable zwingend mit einem Wert belegt werden muss 147 -* type = bestimmt den Typ der Variable. Gültige Typen sind: STRING, PASSWORD, BOOLEAN, ENUM, ARRAY, INTEGER 148 -* example = Zeigt einen grau eingefärbten Beispieltext innerhalb der definierten Variable an, ohne dass dieser als Wert festgelegt ist (Hilfsmittel für Anwender). 55 +optional = bestimmt ob die Option in der Autoconf-Regel optional ist 149 149 150 -(% style="color:#2980b9" %) **systems **(%%)= Legt fest, welche Betriebssystem-Typen durch die Autoconf-Rolle unterstützt werden. Gültige Systeme sind WINDOWS / LINUX. Die Rolle aus dem Beispiel unterstützt beide Betriebssysteme gleichzeitig. 57 +type = bestimmt den Wert der Variable. Mögliche Werte STRING, PASSWORD, BOOLEAN, ENUM, ARRAY, INTEGER 58 +ENUM entspricht einem Dropdown-Menü, in dem man aus vordefinierte Werte auswählen kann: 151 151 60 +(% class="box" %) 61 +((( 62 +globalLogLevel: 63 + display_name: Loglevel 64 + optional: true 65 + type: ENUM 66 + values: 67 + - none 68 + - compact 69 + - detailed 70 + - full 71 +))) 152 152 153 - ----73 +example = Gibt eine grauen Beispielwert für die Variable vor. 154 154 155 -= ====**Aufbaudermain.ps1**=====75 +systems = für welches Betriebssystem existieren Skripte in der Autoconf-Regel 156 156 157 157 158 - Im Verzeichnis/{{/box}}könnensich unterschiedlichePowershell-Skriptebefinden.In dieserRolle liegtdas allgemeingültigeSkriptmain.ps1vor.78 +Die eigentliche Skripte liegen direkt unterhalb der Autoconf-Regel im Verzeichnis {{box}}win{{/box}} neben dem Ordner {{box}}meta{{/box}}. Dort kann das Script main.ps1 heißen oder je nach dem in welcher Phase des Deployment es ausgeführt werden soll auch custom.ps1, setup.ps1, audit.ps1. 159 159 160 -{{code width="50%"}} 80 + 81 +==== **Beispielaufbau der main.ps1** ==== 82 + 83 +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. 84 + 85 +{{code}} 86 +user.ps1 = user Phase, nach der Anmeldung 87 + 88 +custom.ps1 = custom Phase 89 + 90 +audit.ps1 = audit Phase 91 + 92 +setup.ps1 = setup Phase 93 + 94 +main.ps1 = alle Phasen 95 + 161 161 root@ctrl-g1:~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1 162 162 163 163 Param ... ... @@ -213,21 +213,16 @@ 213 213 Remove-Item -Path $file -Force 214 214 } 215 215 216 -Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokale nVariablen.151 +Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokale Variablen. 217 217 {{/code}} 218 218 219 219 ==== ==== 220 220 221 -==== ==== 156 +==== **Neue AutoConf-Regel freigeben** ==== 222 222 223 -==== ==== 158 +Neue Autoconf-Regel müssen mit dem Befehl {{box}}update-autoconf-archive{{/box}} eingelesen werden. 159 +Ansonsten werden die Autoconfrollen auch zeitbasiert (Alle 4 Stunden) neu eingelesen. 160 +Drücken Sie Im Controlcenter mit aktivieren Expertenmodus folgenden Knopfen, damit dort auch die neuen Autoconf-Regeln verfügbar werden. 224 224 225 -==== ==== 226 - 227 -==== ==== 228 - 229 -==== ==== 230 - 231 -==== ==== 232 - 233 -==== ==== 162 +[[image:attach:autoconf.png||data-xwiki-image-style-border="true"]] 163 +
- autoconf-struktur.PNG
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.TomAltenbrunn@sbede - Größe
-
... ... @@ -1,1 +1,0 @@ 1 -36.5 KB - Inhalt
- 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