Änderungen von Dokument Eigene Autoconf-Rolle erstellen
Zuletzt geändert von Tom Altenbrunn am 2023/03/17 08:03
Von Version 29.1
bearbeitet von Jonas Mayer
am 2023/03/16 07:58
am 2023/03/16 07:58
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 24.1
bearbeitet von Jonas Mayer
am 2023/03/15 21:41
am 2023/03/15 21:41
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
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 ... ... @@ -114,13 +114,13 @@ 114 114 authors: 115 115 - Marcel Petersen 116 116 company: SBE network solutions GmbH 117 -(% style="color:#1abc9c" %) 115 +(% style="color:#1abc9c" %)display_name:(%%) WLAN Profil mit PSK anlegen 118 118 license: SBE 119 -(% style="color:#8e44ad" %) 117 +(% style="color:#8e44ad" %) uuid:(%%) 52318636-c4f5-11ea-baf9-0bff00c66ff4 120 120 visible: true 121 - (%style="color:#19177c"%)priority:(%%)0119 + priority: 0 122 122 applyAlways: false 123 -(% style="color:#f1c40f" %) 121 +(% style="color:#f1c40f" %) tags:(%%) 124 124 - CUSTOM 125 125 (% style="color:#e74c3c" %) vars:(%%) 126 126 ssid: ... ... @@ -131,7 +131,7 @@ 131 131 display_name: Passwort 132 132 optional: false 133 133 type: PASSWORD 134 -(% style="color:#2980b9" %) 132 +(% style="color:#2980b9" %)systems:(%%) 135 135 - WINDOWS 136 136 - LINUX 137 137 ))) ... ... @@ -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)] ... ... @@ -221,71 +221,22 @@ 221 221 222 222 Remove-Item -Path $file -Force 223 223 } 224 -{{/code}} 225 225 226 - 227 -(% style="color:#19177c" %)**Linux Variante (Network Manager)** 228 - 229 -{{code language="text" width="50%"}} 230 -root@ctrl-g1:~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/lin/main.ps1 216 +Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokalen Variablen. 231 231 {{/code}} 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 -) 219 +==== ==== 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" 221 +==== ==== 260 260 261 - if (Test-Path -Path $config) { 262 - Write-Verbose "Removing '$config'" 263 - Remove-Item -Path $config -Recurse -Force 264 - } 223 +==== ==== 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""" 225 +==== ==== 273 273 274 - if ($LASTEXITCODE -ne 0) { 275 - Write-Verbose "Error: Credentials wrong?" 227 +==== ==== 276 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 - } 229 +==== ==== 287 287 288 - Write-Verbose "No suitable implementation found" 289 - exit 1 290 -} 291 -{{/code}} 231 +==== ==== 232 + 233 +==== ====