Ä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 22.1
bearbeitet von Jonas Mayer
am 2023/03/15 21:31
Ä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  
... ... @@ -106,7 +106,7 @@
106 106  root@ctrl-g1:~~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/meta/logodidact.yml
107 107  )))
108 108  
109 -== (% style="font-size:16px" %)**Struktureller Aufbau der logodidact.yml**(%%) ==
107 +== (% style="font-size:16px" %)** Struktureller Aufbau der logodidact.yml**(%%) ==
110 110  
111 111  (% class="box" %)
112 112  (((
... ... @@ -114,13 +114,13 @@
114 114   authors:
115 115   - Marcel Petersen
116 116   company: SBE network solutions GmbH
117 -(% style="color:#1abc9c" %) display_name:(%%) WLAN Profil mit PSK anlegen
115 +(% style="color:#1abc9c" %)display_name:(%%) WLAN Profil mit PSK anlegen
118 118   license: SBE
119 -(% style="color:#8e44ad" %) uuid:(%%) 52318636-c4f5-11ea-baf9-0bff00c66ff4
117 +(% 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 -(% style="color:#f1c40f" %) tags:(%%)
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" %) systems:(%%)
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  
155 +== (% style="font-size:16px" %)**Inhalt des PowerShell-Skripts main.ps1, das die Variablen als Parameter entgegennimmt und verwendet**(%%) ==
158 158  
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.
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 Parameter ##$ssid## und ##$psk## intern verwendet.
163 163  
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 width="50%" language="text"}}
230 -root@ctrl-g1:~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/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 +==== ====