Ä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
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 17.9
bearbeitet von Tom Altenbrunn
am 2023/03/15 14:03
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.jonasmayer@sbede
1 +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 feste 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,8 +114,6 @@
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**(%%) ==
118 -
119 119  (% class="box" %)
120 120  (((
121 121  ld_info:
... ... @@ -122,13 +122,13 @@
122 122   authors:
123 123   - Marcel Petersen
124 124   company: SBE network solutions GmbH
125 -(% style="color:#1abc9c" %) display_name:(%%) WLAN Profil mit PSK anlegen
114 +(% style="color:#1abc9c" %)display_name:(%%) WLAN Profil mit PSK anlegen
126 126   license: SBE
127 -(% style="color:#8e44ad" %) uuid:(%%) 52318636-c4f5-11ea-baf9-0bff00c66ff4
116 +(% style="color:#8e44ad" %) uuid:(%%) 52318636-c4f5-11ea-baf9-0bff00c66ff4
128 128   visible: true
129 - (% style="color:#19177c" %)priority:(%%) 0
118 + priority: 0
130 130   applyAlways: false
131 -(% style="color:#f1c40f" %) tags:(%%)
120 +(% style="color:#f1c40f" %) tags:(%%)
132 132   - CUSTOM
133 133  (% style="color:#e74c3c" %) vars:(%%)
134 134   ssid:
... ... @@ -139,43 +139,35 @@
139 139   display_name: Passwort
140 140   optional: false
141 141   type: PASSWORD
142 -(% style="color:#2980b9" %) systems:(%%)
131 +(% style="color:#2980b9" %)systems:(%%)
143 143   - WINDOWS
144 144   - LINUX
145 145  )))
146 146  
147 -(% style="color:#1abc9c" %)**display_name**(%%) = Anzeigename der Autoconf-Rolle im LD Control Center
136 +(% style="color:#1abc9c" %)display_name(%%) = Anzeigename der Autoconf-Rolle im LD Control Center
148 148  
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/]]
138 +(% 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.
140 +(% style="color:#f1c40f" %)tags(%%) = beschreibt, in welchen Phasen die Autoconf-Regel ausgeführt wird.
152 152  
153 -(% style="color:#f1c40f" %)**tags**(%%) = beschreibt, in welchen Phasen die Autoconf-Regel ausgeführt wird.
142 +(% style="color:#e74c3c" %)vars(%%) = definiert mögliche Variablen, die den Skripten übergeben werden
154 154  
155 -(% style="color:#e74c3c" %)**vars**(%%)** **= definiert mögliche Variablen, die den Skripten übergeben werden
156 -
157 157  * display_name = Name der konfigurierbaren Variable im Control Center
158 158  * optional = bestimmt, ob die Variable zwingend mit einem Wert belegt werden muss
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.
149 +(% 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  
153 +===== **Aufbau der main.ps1** =====
166 166  
167 -== (% style="font-size:16px" %)**Inhalt des PowerShell-Skripts main.ps1, das die Variablen entgegennimmt**(%%) ==
155 +Im Verzeichnis {{box}} win/ {{/box}} 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%"}}
158 +root@ctrl-g1:~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1
159 +
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  }
212 +
213 +Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokalen Variablen.
231 231  {{/code}}
232 232  
233 233  ==== ====