Änderungen von Dokument Eigene Autoconf-Rolle erstellen
Zuletzt geändert von Tom Altenbrunn am 2023/03/17 08:03
Von Version 27.1
bearbeitet von Jonas Mayer
am 2023/03/16 07:48
am 2023/03/16 07:48
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 17.10
bearbeitet von Tom Altenbrunn
am 2023/03/15 14:06
am 2023/03/15 14:06
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (2 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Dokument-Autor
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. jonasmayer@sbede1 +XWiki.TomAltenbrunn@sbede - Inhalt
-
... ... @@ -1,8 +1,6 @@ 1 1 {{toc depth="3"/}} 2 2 3 ----- 4 4 5 - 6 6 = (% style="font-size:22px" %)__**Allgemeines**__(%%) = 7 7 8 8 ... ... @@ -19,8 +19,9 @@ 19 19 * bis Puppet-Version **1.4.x** : {{code language="bash"}}/var/lib/ld-autoconf/custom/{{/code}} 20 20 * ab Puppet-Version **1.5.x **: {{code language="bash" layout="LINENUMBERS"}}/data/ld/autoconf/custom/{{/code}} 21 21 22 -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. 23 23 21 +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. 22 + 24 24 __Der strukturelle Aufbau eines AutoConf-Verzeichnisses grafisch dargestellt:__ 25 25 26 26 [[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"]] ... ... @@ -33,7 +33,7 @@ 33 33 * (% 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. 34 34 * (% 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. 35 35 * (% 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. 36 -* (% 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 +* (% 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. 37 37 * **collect.ps1** - Sonderfall. Dieses Skript wird ausgeführt, wenn durch einen Anwender aktiv die Phase COLLECT zum Einsammeln von Einstellungen am Client aufgerufen wird. 38 38 39 39 (% class="box warningmessage" %) ... ... @@ -41,15 +41,15 @@ 41 41 (% 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. 42 42 ))) 43 43 43 + 44 44 ---- 45 45 46 - 47 47 = (% style="font-size:22px" %)__**Beispielaufbau einer logodidact.yml**__(%%) = 48 48 49 49 50 50 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. 51 51 52 -== (% style="font-size:16px" %)**Beispiel zur Deklaration einer Autoconf Variable in logodidact.yml**(%%) == 51 +== (% style="font-size:16px" %)**Beispiel zur Deklaration einer Autoconf Variable in logodidact.yml:**(%%) == 53 53 54 54 (% class="box" %) 55 55 ((( ... ... @@ -74,9 +74,9 @@ 74 74 **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. 75 75 ))) 76 76 76 + 77 77 ---- 78 78 79 - 80 80 = (% style="font-size:22px" %)__**Neue AutoConf-Rollen nach Fertigstellung freigeben**__(%%) = 81 81 82 82 ... ... @@ -93,21 +93,13 @@ 93 93 [[image:attach:autoconf.png||data-xwiki-image-style-border="true" class="img-thumbnail"]] 94 94 95 95 95 + 96 96 ---- 97 97 98 - 99 - 100 - 101 - 102 - 103 - 104 - 105 - 106 - 107 107 = (% style="font-size:22px" %)__**Weiteres, funktionsfertiges Beispiel: Rolle „WLAN Profil mit PSK anlegen“**__(%%) = 108 108 109 109 110 -Zum besseren Verständnis wird nachfolgend eine fe ste Autoconf-Rolle zur Konfiguration eines WLAN-Profils (SSID inkl. PSK) an Clients näher beleuchtet.101 +Zum besseren Verständnis wird nachfolgend eine mitgelieferte Autoconf-Rolle zur Konfiguration eines WLAN-Profils (SSID inkl. PSK) an Clients näher beleuchtet. 111 111 112 112 (% class="box" %) 113 113 ((( ... ... @@ -114,7 +114,7 @@ 114 114 root@ctrl-g1:~~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/meta/logodidact.yml 115 115 ))) 116 116 117 -== (% style="font-size:16px" %)**Struktureller Aufbau der logodidact.yml**(%%) == 108 +== (% style="font-size:16px" %)** Struktureller Aufbau der logodidact.yml**(%%) == 118 118 119 119 (% class="box" %) 120 120 ((( ... ... @@ -122,13 +122,13 @@ 122 122 authors: 123 123 - Marcel Petersen 124 124 company: SBE network solutions GmbH 125 -(% style="color:#1abc9c" %) 116 +(% style="color:#1abc9c" %)display_name:(%%) WLAN Profil mit PSK anlegen 126 126 license: SBE 127 -(% style="color:#8e44ad" %) 118 +(% style="color:#8e44ad" %) uuid:(%%) 52318636-c4f5-11ea-baf9-0bff00c66ff4 128 128 visible: true 129 - (% style="color:#19177c" %)priority:(%%)0120 + priority: 0 130 130 applyAlways: false 131 -(% style="color:#f1c40f" %) 122 +(% style="color:#f1c40f" %) tags:(%%) 132 132 - CUSTOM 133 133 (% style="color:#e74c3c" %) vars:(%%) 134 134 ssid: ... ... @@ -139,7 +139,7 @@ 139 139 display_name: Passwort 140 140 optional: false 141 141 type: PASSWORD 142 -(% style="color:#2980b9" %) 133 +(% style="color:#2980b9" %)systems:(%%) 143 143 - WINDOWS 144 144 - LINUX 145 145 ))) ... ... @@ -148,8 +148,6 @@ 148 148 149 149 (% 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/]] 150 150 151 -(% style="color:#19177c" %)**priority**(% style="color:#2980b9" %)** **(%%)= Legt die Verarbeitungsreihenfolge der Autoconf-Rolle gegenüber weiteren Rollen fest, die in derselben Phase ausgeführt werden. Bei gleicher Priorität findet die Abarbeitung alphabetisch statt. Eine höhere Priorität führt zu früherer Ausführung. 152 - 153 153 (% style="color:#f1c40f" %)**tags**(%%) = beschreibt, in welchen Phasen die Autoconf-Regel ausgeführt wird. 154 154 155 155 (% style="color:#e74c3c" %)**vars**(%%)** **= definiert mögliche Variablen, die den Skripten übergeben werden ... ... @@ -159,23 +159,17 @@ 159 159 * type = bestimmt den Typ der Variable. Gültige Typen sind: STRING, PASSWORD, BOOLEAN, ENUM, ARRAY, INTEGER 160 160 * example = Zeigt einen grau eingefärbten Beispieltext innerhalb der definierten Variable an, ohne dass dieser als Wert festgelegt ist (Hilfsmittel für Anwender). 161 161 162 -(% 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. 151 +(% 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. 163 163 164 164 ---- 165 165 155 +===== **Aufbau der main.ps1** ===== 166 166 167 - ==(% style="font-size:16px"%)**Inhaltdes PowerShell-Skriptsmain.ps1,dasdieVariablenentgegennimmt**(%%)==157 +Im Verzeichnis {{box}} win/ {{/box}} können sich unterschiedliche Powershell-Skripte befinden. In dieser Rolle liegt das allgemeingültige Skript main.ps1 vor. 168 168 169 -Im Unterverzeichnis {{box}} win/ {{/box}} oder {{box}} lin/ {{/box}} der Autoconf-Rolle können sich unterschiedliche PowerShell-Skripte zur Ausführung in den Phasen befinden. In dieser Rolle liegt das allgemeingültige Skript {{box}}main.ps1{{/box}} vor, welches die Variablen als Parameter ##$ssid## und ##$psk## intern verwendet. 170 - 171 -(% class="box" %) 172 -((( 173 -(% style="color:#27ae60" %)# Windows Variante(%%) 174 -root@ctrl-g1:~~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1 175 -))) 176 - 177 - 178 178 {{code width="50%"}} 160 +root@ctrl-g1:~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1 161 + 179 179 Param 180 180 ( 181 181 [parameter(Mandatory=$false)] ... ... @@ -228,6 +228,8 @@ 228 228 229 229 Remove-Item -Path $file -Force 230 230 } 214 + 215 +Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokalen Variablen. 231 231 {{/code}} 232 232 233 233 ==== ====