Änderungen von Dokument Eigene Autoconf-Rolle erstellen

Zuletzt geändert von Tom Altenbrunn am 2023/03/17 08:03

Von Version 28.1
bearbeitet von Jonas Mayer
am 2023/03/16 07:55
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 26.1
bearbeitet von Jonas Mayer
am 2023/03/15 21:54
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
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  
... ... @@ -41,9 +41,9 @@
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  
42 +
44 44  ----
45 45  
46 -
47 47  = (% style="font-size:22px" %)__**Beispielaufbau einer logodidact.yml**__(%%) =
48 48  
49 49  
... ... @@ -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  
75 +
77 77  ----
78 78  
79 -
80 80  = (% style="font-size:22px" %)__**Neue AutoConf-Rollen nach Fertigstellung freigeben**__(%%) =
81 81  
82 82  
... ... @@ -93,9 +93,9 @@
93 93  [[image:attach:autoconf.png||data-xwiki-image-style-border="true" class="img-thumbnail"]]
94 94  
95 95  
94 +
96 96  ----
97 97  
98 -
99 99  = (% style="font-size:22px" %)__**Weiteres, funktionsfertiges Beispiel: Rolle „WLAN Profil mit PSK anlegen“**__(%%) =
100 100  
101 101  
... ... @@ -118,7 +118,7 @@
118 118   license: SBE
119 119  (% style="color:#8e44ad" %) uuid:(%%) 52318636-c4f5-11ea-baf9-0bff00c66ff4
120 120   visible: true
121 -(% style="color:#19177c" %) priority:(%%) 0
119 + priority: 0
122 122   applyAlways: false
123 123  (% style="color:#f1c40f" %) tags:(%%)
124 124   - CUSTOM
... ... @@ -140,8 +140,6 @@
140 140  
141 141  (% 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/]]
142 142  
143 -(% 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.
144 -
145 145  (% style="color:#f1c40f" %)**tags**(%%) = beschreibt, in welchen Phasen die Autoconf-Regel ausgeführt wird.
146 146  
147 147  (% style="color:#e74c3c" %)**vars**(%%)** **= definiert mögliche Variablen, die den Skripten übergeben werden
... ... @@ -151,24 +151,19 @@
151 151  * type = bestimmt den Typ der Variable. Gültige Typen sind: STRING, PASSWORD, BOOLEAN, ENUM, ARRAY, INTEGER
152 152  * example = Zeigt einen grau eingefärbten Beispieltext innerhalb der definierten Variable an, ohne dass dieser als Wert festgelegt ist (Hilfsmittel für Anwender).
153 153  
154 -(% 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.
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.
155 155  
152 +
156 156  ----
157 157  
158 -
159 159  == (% style="font-size:16px" %)**Inhalt des PowerShell-Skripts main.ps1, das die Variablen entgegennimmt**(%%) ==
160 160  
161 -Im Unterverzeichnis {{box}} win/ {{/box}} oder {{box}} lin/ {{/box}} der Autoconf-Rolle können sich wie erläutert unterschiedliche PowerShell-Skripte zur Ausführung in den verschiedenen Phasen befinden.
162 -In dieser Rolle liegt konkret das allgemeingültige Skript {{box}}main.ps1{{/box}} vor, welches die Variablen als Parameter ##$ssid## und ##$psk## intern verwendet.
163 163  
158 +Im Verzeichnis {{box}} win/ {{/box}} können sich unterschiedliche Powershell-Skripte befinden. In dieser Rolle liegt das allgemeingültige Skript main.ps1 vor, welches die Variablen als Parameter ##$ssid## und ##$psk## intern verwendet.
164 164  
165 -(% style="color:#19177c" %)**Windows Variante**
166 -
167 -{{code language="text" width="50%"}}
160 +{{code width="50%"}}
168 168  root@ctrl-g1:~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1
169 -{{/code}}
170 170  
171 -{{code width="50%" language="powershell"}}
172 172  Param
173 173  (
174 174   [parameter(Mandatory=$false)]
... ... @@ -223,69 +223,18 @@
223 223  }
224 224  {{/code}}
225 225  
217 +==== ====
226 226  
227 -(% style="color:#19177c" %)**Linux Variante (Network Manager)**
219 +==== ====
228 228  
229 -{{code width="50%" language="text"}}
230 -root@ctrl-g1:~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1
231 -{{/code}}
221 +==== ====
232 232  
233 -{{code language="powershell" width="50%"}}
234 -Param
235 -(
236 - [parameter(Mandatory=$false)]
237 - [String]
238 - $ssid,
239 - [parameter(Mandatory=$false)]
240 - [String]
241 - $psk
242 -)
223 +==== ====
243 243  
244 -if ($ssid -ne '' -and $psk -ne '') {
245 - if (Get-Command "nmcli" -ErrorAction SilentlyContinue) {
246 - # Check if kernel modules are up
247 - nmcli dev wifi rescan
248 - if ($LASTEXITCODE -ne 0) {
249 - Start-Sleep -Seconds 30
250 - }
251 -
252 - # Check again
253 - nmcli dev wifi rescan
254 - if ($LASTEXITCODE -ne 0) {
255 - Write-Verbose "Skipping role. There might be no WiFi device installed."
256 - exit 0
257 - }
258 -
259 - $config = "/etc/NetworkManager/system-connections/$ssid"
225 +==== ====
260 260  
261 - if (Test-Path -Path $config) {
262 - Write-Verbose "Removing '$config'"
263 - Remove-Item -Path $config -Recurse -Force
264 - }
227 +==== ====
265 265  
266 - Write-Verbose "Connecting to '$ssid'"
267 -
268 - nmcli device wifi connect """$ssid""" password """$psk"""
269 -
270 - if ($LASTEXITCODE -eq 0) {
271 - Start-Sleep -Seconds 5
272 - nmcli con up """$ssid"""
229 +==== ====
273 273  
274 - if ($LASTEXITCODE -ne 0) {
275 - Write-Verbose "Error: Credentials wrong?"
276 -
277 - if (Test-Path -Path $config) {
278 - Write-Verbose "Removing '$config'"
279 - Remove-Item -Path $config -Recurse -Force
280 - }
281 - }
282 - }
283 -
284 - Write-Verbose "Exiting with code: $LASTEXITCODE"
285 - exit $LASTEXITCODE
286 - }
287 -
288 - Write-Verbose "No suitable implementation found"
289 - exit 1
290 -}
291 -{{/code}}
231 +==== ====