Änderungen von Dokument Eigene Autoconf-Rolle erstellen
Zuletzt geändert von Tom Altenbrunn am 2023/03/17 08:03
Von Version 14.1
bearbeitet von Jonas Mayer
am 2023/03/15 13:05
am 2023/03/15 13:05
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 17.6
bearbeitet von Tom Altenbrunn
am 2023/03/15 13:55
am 2023/03/15 13:55
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (2 geändert, 0 hinzugefügt, 0 gelöscht)
-
Anhänge (0 geändert, 1 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Dokument-Autor
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. jonasmayer@sbede1 +XWiki.TomAltenbrunn@sbede - Inhalt
-
... ... @@ -11,17 +11,82 @@ 11 11 * bis Puppet-Version **1.4.x** : {{code language="bash"}}/var/lib/ld-autoconf/custom/{{/code}} 12 12 * ab Puppet-Version **1.5.x **: {{code language="bash" layout="LINENUMBERS"}}/data/ld/autoconf/custom/{{/code}} 13 13 14 -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 ausführbarenSkript-Dateien (PowerShelloder Bash). 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.mitzugeben.14 +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. 15 15 16 -Der strukturelle Aufbau is tnachfolgend ersichtlich:[[image:image-20230315120842-3.png||height="213"width="640"]]16 +__Der strukturelle Aufbau eines AutoConf-Verzeichnisses grafisch dargestellt:__ 17 17 18 +[[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"]] 19 + 18 18 ---- 19 19 22 +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: 23 + 24 +* **main.ps1** - Skript wird in allen Phasen ausgeführt, die innerhalb der Beschreibungsdatei {{box}}meta/logodidact.yml{{/box}} festgelegt sind 25 +* (% 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. 26 +* (% 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. 27 +* (% 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. 28 +* (% 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. 29 +* **collect.ps1** - Sonderfall. Dieses Skript wird ausgeführt, wenn durch einen Anwender aktiv die Phase COLLECT zum Einsammeln von Einstellungen am Client aufgerufen wird. 30 + 31 +(% class="box warningmessage" %) 32 +((( 33 +(% 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. 34 +))) 35 + 36 +---- 37 + 20 20 ==== **Beispielaufbau einer logodidact.yml:** ==== 21 21 22 22 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. 23 23 24 24 43 +**Beispiel zur Deklaration einer Autoconf Variable in logodidact.yml:** 44 + 45 +(% class="box" %) 46 +((( 47 +ld_info: 48 + display_name: Meine eigene Autoconf-Rolle 1 49 +(% style="color:#27ae60" %) # [...](%%) 50 +\\ vars: 51 + globalLogLevel: 52 + display_name: Loglevel 53 + optional: true 54 + type: ENUM 55 + values: 56 + - none 57 + - compact 58 + - detailed 59 + - verbose 60 +\\(% style="color:#27ae60" %) # [...] 61 +))) 62 + 63 +(% class="box infomessage" %) 64 +((( 65 +**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. 66 +))) 67 + 68 +---- 69 + 70 +==== **Neue AutoConf-Rollen nach Fertigstellung freigeben** ==== 71 + 72 +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. 73 +Alternativ werden alle Autoconf-Rollen auch zeitbasiert alle 4 Stunden am Server eingelesen. Dies passiert automatisch im Hintergrund. 74 + 75 +Ü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. 76 + 77 +(% class="box infomessage" %) 78 +((( 79 +Der Expertenmodus wird in den **Einstellungen (Zahnrad oben rechts) -> Entwickleroptionen -> Expertenmodus aktivieren** aktiv geschaltet. 80 +))) 81 + 82 +[[image:attach:autoconf.png||data-xwiki-image-style-border="true" class="img-thumbnail"]] 83 + 84 + 85 + 86 +---- 87 + 88 +==== **Weiteres, funktionsfertiges Beispiel: Rolle „WLAN Profil mit PSK anlegen“** ==== 89 + 25 25 Zum besseren Verständnis wird nachfolgend eine mitgelieferte Autoconf-Rolle zur Konfiguration eines WLAN-Profils (SSID inkl. PSK) an Clients näher beleuchtet. 26 26 27 27 (% class="box" %) ... ... @@ -70,61 +70,14 @@ 70 70 * type = bestimmt den Typ der Variable. Gültige Typen sind: STRING, PASSWORD, BOOLEAN, ENUM, ARRAY, INTEGER 71 71 * example = Zeigt einen grau eingefärbten Beispieltext innerhalb der definierten Variable an, ohne dass dieser als Wert festgelegt ist (Hilfsmittel für Anwender). 72 72 73 -(% style="color:#2980b9" %) systems (%%)= Legt fest, welche Betriebssystem-Typen durch die Autoconf-Rolle unterstützt werden. Gültige Systeme sind :WINDOWS / LINUX138 +(% 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. 74 74 75 75 76 -** BeispielfüreineVariable:**141 +===== **Aufbau der main.ps1** ===== 77 77 78 -(% class="box" %) 79 -((( 80 -globalLogLevel: 81 - display_name: Loglevel 82 - optional: true 83 - type: ENUM 84 - values: 85 - - none 86 - - compact 87 - - detailed 88 - - verbose 89 -))) 143 +Im Verzeichnis {{box}} win/ {{/box}} können sich unterschiedliche Powershell-Skripte befinden. In dieser Rolle liegt das allgemeingültige Skript main.ps1 vor. 90 90 91 -(% class="box infomessage" %) 92 -((( 93 -(% 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. 94 -))) 95 - 96 ----- 97 - 98 -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. Für diese Skripte sind folgende Dateinamen zulässig: 99 - 100 -* **main.ps1** - Skript wird in allen Phasen ausgeführt, die innerhalb der Beschreibungsdatei {{box}}meta/logodidact.yml{{/box}} festgelegt sind 101 -* (% style="color:#8e44ad" %)**setup.ps1**(%%) - Skript wird ausschließlich in der SETUP-Phase während des Deployments ausgeführt. 102 -* (% 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 im Hintergrund. 103 -* (% 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. 104 -* (% style="color:#8e44ad" %)**audit.ps1**(%%) - Skript wird ausschließlich in der AUDIT-Phase während des Deployments ausgeführt. 105 -* **collect.ps1** - Sonderfall. Dieses Skript wird ausgeführt, wenn durch einen Anwender aktiv die Phase COLLECT zum Einsammeln von Einstellungen am Client aufgerufen wird. 106 - 107 -(% class="box warningmessage" %) 108 -((( 109 -(% 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. 110 -))) 111 - 112 - 113 -==== **Beispielaufbau der main.ps1** ==== 114 - 115 -Im Verzeichnis {{box}} win/ {{/box}} können sich unterschiedliche Powershell-Skripte befinden. Der jeweilige Name der .ps1 Datei gibt an zu welcher Phase die Datei ausgeführt wird. 116 - 117 117 {{code width="50%"}} 118 -user.ps1 = user Phase, nach der Anmeldung 119 - 120 -custom.ps1 = custom Phase 121 - 122 -audit.ps1 = audit Phase 123 - 124 -setup.ps1 = setup Phase 125 - 126 -main.ps1 = alle Phasen 127 - 128 128 root@ctrl-g1:~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1 129 129 130 130 Param ... ... @@ -185,17 +185,16 @@ 185 185 186 186 ==== ==== 187 187 188 -==== **NeueAutoConf-Rollen freigeben**====206 +==== ==== 189 189 190 -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. 191 -Alternativ werden alle Autoconf-Rollen auch zeitbasiert alle 4 Stunden am Server eingelesen. Dies passiert automatisch im Hintergrund. 208 +==== ==== 192 192 193 - BetätigenSieaußerdem im LD Control Center (mit aktiviertem Expertenmodus) den Reiter "AutoConf Rollen neu einlesen", damit selbst hinzugefügte Autoconf-Rollen verfügbar werden.210 +==== ==== 194 194 195 -(% class="box infomessage" %) 196 -((( 197 -Der Expertenmodus wird in den **Einstellungen (Zahnrad oben rechts) -> Entwickleroptionen -> Expertenmodus aktivieren** aktiv geschaltet. 198 -))) 212 +==== ==== 199 199 200 -[[image:attach:autoconf.png||data-xwiki-image-style-border="true"]] 201 - 214 +==== ==== 215 + 216 +==== ==== 217 + 218 +==== ====
- autoconf-struktur.PNG
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.TomAltenbrunn@sbede - Größe
-
... ... @@ -1,0 +1,1 @@ 1 +36.5 KB - Inhalt