Änderungen von Dokument Eigene Autoconf-Rolle erstellen
Zuletzt geändert von Tom Altenbrunn am 2023/03/17 08:03
Von Version 12.10
bearbeitet von Tom Altenbrunn
am 2023/03/15 12:08
am 2023/03/15 12:08
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 2.1
bearbeitet von Christian Germann
am 2022/08/09 10:53
am 2022/08/09 10:53
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (3 geändert, 0 hinzugefügt, 0 gelöscht)
-
Anhänge (0 geändert, 0 hinzugefügt, 2 gelöscht)
Details
- Seiteneigenschaften
-
- Titel
-
... ... @@ -1,1 +1,1 @@ 1 - EigeneAutoconf-Rolleerstellen1 +Autoconf-Konfiguration erstellen - Dokument-Autor
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. TomAltenbrunn@sbede1 +XWiki.cge@sbede - Inhalt
-
... ... @@ -1,29 +1,16 @@ 1 -Autoconf liegt wie der Vorgänger Ansible im ctrl-g1 Container und dient dazu ,Einstellungen oder Konfigurationen aufbereitsdeployte Rechnerzu übertragen,ohne einneuesImage dafür zu schreiben.Somit lassen sich relativ einfach und flexibel diverse Anpassungen an bestehenden Clients vornehmen.1 +Autoconf liegt wie der Vorgänger Ansible im ctrl-g1 Container und dient dazu Einstellungen oder Konfigurationen auf die deployten Rechner ohne ein Image dafür zu schreiben. 2 2 3 - Logodidact ist bereits standardmäßigmitzahlreicheneigenenAutoconf-Rollen bestückt, um einmöglichstbreites Spektrumverschiedenster Anforderungendes allgemeinen Schulbetriebsabzudecken.3 +Von SBE ausgelieferte Rollen befinden sich Im Pfad {{box}}/usr/lib/ld-autoconf/logodidact/roles/{{/box}}. 4 4 5 - VonseitenSBE bereitgestellte Rollenbefindensich im ctrl-g1-Containerim Pfad{{box}}/usr/lib/ld-autoconf/logodidact/roles/{{/box}}.5 +Selbst erstellte Autoconf-Rollen müssen unter {{box}}/var/lib/ld-autoconf/custom/{{/box}} abgelegt werden, damit diese nicht durch Updates überschrieben werden. 6 6 7 - [[image:image-20230315103418-1.png||height="103"width="1344"class="img-thumbnail"]]7 +Der Aufbau einer Autoconf-Regel muss einer Struktur folgen, damit der Server diese Interpretieren kann. 8 8 9 +Unterhalb der Regel muss ein Ordner mit Namen {{box}}meta{{/box}} mit einer {{box}}logodidact.yml{{/box}} liegen. 9 9 10 -Darüber hinaus ist es Partnern und Kunden möglich für spezielle, schulspezifische Anforderungen eigene Autoconf-Rollen erstellen und im LD Control Center bereitstellen zu können. Dafür steht je nach Puppet-Versionsstand ein eigenes Verzeichnis im ctrl-g1 zur Verfügung, welches nicht durch Server-Updates beeinflusst oder überschrieben wird. 11 11 12 -* bis Puppet-Version **1.4.x** : {{code language="bash"}}/var/lib/ld-autoconf/custom/{{/code}} 13 -* Ab Puppet-Version **1.5.x **: {{code language="bash" layout="LINENUMBERS"}}/data/ld/autoconf/custom/{{/code}} 12 +==== **Beispielaufbau der logodidact.yml:** ==== 14 14 15 - 16 -Der Aufbau einer Autoconf-Rolle unterliegt einer vordefinierten Struktur, bestehend aus einer logodidact.yml, welche die Informationen zu Namen, Beschreibung, Ersteller und Variablen definiert, sowie der eigentlichen ausführbaren Skript-Datei (Powershell oder Bash). Diese liegen wiederum in ihren eigenen Dateiordnern. Daneben besteht auch die Möglichkeit im Unterordner files/ (ausführbare) Dateien, Bilder, Videos, etc. mitzugeben. 17 -Der strukturelle Aufbau ist nachfolgend ersichtlich: 18 -[[image:image-20230315112326-2.png||height="215" width="633" class="img-thumbnail"]] 19 - 20 ----- 21 - 22 -==== **Beispielaufbau einer logodidact.yml:** ==== 23 - 24 -Eine Autoconf-Beispielvorlage liegt serverseitig im Unterordner example/ vor. Zum besseren Verständnis wird nachfolgend eine Autoconf-Rolle zur Mitgabe einer WLAN-SSID samt PSK an Clients näher beleuchtet. 25 - 26 - 27 27 (% class="box" %) 28 28 ((( 29 29 root@ctrl-g1:~~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/meta/logodidact.yml ... ... @@ -35,15 +35,15 @@ 35 35 authors: 36 36 - Marcel Petersen 37 37 company: SBE network solutions GmbH 38 - (%style="color:#1abc9c"%)display_name:(%%)WLAN Profil mit PSK anlegen25 + display_name: WLAN Profil mit PSK anlegen 39 39 license: SBE 40 - (%style="color:#8e44ad"%)uuid:(%%)52318636-c4f5-11ea-baf9-0bff00c66ff427 + uuid: 52318636-c4f5-11ea-baf9-0bff00c66ff4 41 41 visible: true 42 42 priority: 0 43 43 applyAlways: false 44 - (%style="color:#f1c40f"%)tags:(%%)31 + tags: 45 45 - CUSTOM 46 - (%style="color:#e74c3c"%)vars:(%%)33 + vars: 47 47 ssid: 48 48 display_name: SSID 49 49 optional: false ... ... @@ -52,29 +52,24 @@ 52 52 display_name: Passwort 53 53 optional: false 54 54 type: PASSWORD 55 - (%style="color:#2980b9"%)systems:(%%)42 + systems: 56 56 - WINDOWS 57 57 - LINUX 58 58 ))) 59 59 60 - (%style="color:#1abc9c"%)display_name(%%)=AnzeigenamederAutoconf-RolleimLDControlCenter47 +uuid = ID der Autoconf-Regel, muss einmalig sein. Bei einer eigenen Autoconf-Regel sollte der Wert am besten neugeneriert werden. [[https:~~/~~/www.uuidgenerator.net/>>url:https://www.uuidgenerator.net/]] 61 61 62 - (% style="color:#8e44ad"%)uuid(%%)=ID der Autoconf-Regel. Muss einmaligsein.Beieiner eigenenAutoconf-Rollesollteder Wertam besten neu generiertwerden. [[https:~~/~~/www.uuidgenerator.net/>>url:https://www.uuidgenerator.net/]]49 +tags = beschreibt in welcher Phase die Autoconf-Regel aktiv ist. 63 63 64 - (% style="color:#f1c40f" %)tags(%%)=beschreibt,in welchenPhasendieAutoconf-Regel ausgeführtwird.51 +vars = definiert Variablen die den Skripten übergeben werden 65 65 66 - (%style="color:#e74c3c"%)vars(%%)=definiertmöglicheVariablen,dieden Skripten übergeben werden53 +display_name = Name der Variable im ctrl 67 67 68 -* display_name = Name der konfigurierbaren Variable im Control Center 69 -* optional = bestimmt, ob die Variable zwingend mit einem Wert belegt werden muss 70 -* type = bestimmt den Typ der Variable. Gültige Typen sind: STRING, PASSWORD, BOOLEAN, ENUM, ARRAY, INTEGER 71 -* example = Zeigt einen grau eingefärbten Beispieltext innerhalb der definierten Variable an, ohne dass dieser als Wert festgelegt ist (Hilfsmittel für Anwender). 55 +optional = bestimmt ob die Option in der Autoconf-Regel optional ist 72 72 73 -(% style="color:#2980b9" %) systems (%%)= Legt fest, welche Betriebssystem-Typen durch die Autoconf-Rolle unterstützt werden. Gültige Systeme sind: WINDOWS / LINUX 57 +type = bestimmt den Wert der Variable. Mögliche Werte STRING, PASSWORD, BOOLEAN, ENUM, ARRAY, INTEGER 58 +ENUM entspricht einem Dropdown-Menü, in dem man aus vordefinierte Werte auswählen kann: 74 74 75 - 76 -**Beispiel für eine Variable:** 77 - 78 78 (% class="box" %) 79 79 ((( 80 80 globalLogLevel: ... ... @@ -88,33 +88,17 @@ 88 88 - full 89 89 ))) 90 90 91 -(% class="box infomessage" %) 92 -((( 93 -(% style="font-size:12px" %)**Tipp:** Der Variablentyp ENUM aus dem Beispiel entspricht einem Dropdown-Menü, in dem man aus vordefinierten Werten auswählen kann 94 -))) 73 +example = Gibt eine grauen Beispielwert für die Variable vor. 95 95 96 -- ---75 +systems = für welches Betriebssystem existieren Skripte in der Autoconf-Regel 97 97 98 -Für die Funktionalität der Autoconf-Rolle ist es nötig, PowerShell-Skripte am Server abzuspeichern, die die Instruktionen an den Arbeitsstationen ausführen. Diese Skripte liegen unterhalb der Autoconf-Rolle im Verzeichnis {{box}}win{{/box}}. Darin sind folgende Dateinamen zulässig: 99 99 100 -* **main.ps1** - Skript wird in allen Phasen ausgeführt, die innerhalb der Beschreibungsdatei {{box}}meta/logodidact.yml{{/box}} festgelegt sind 101 -* (% style="color:#8e44ad" %)**setup.ps1**(%%) - Skript wird ausschließlich in der SETUP-Phase während des Deployments ausgeführt. 102 -* (% style="color:#8e44ad" %)**custom.ps1**(%%) - Skript wird ausschließlich in der CUSTOM-Phase während des Deployments ausgeführt. 103 -* (% style="color:#8e44ad" %)**user.ps1**(%%) - Skript wird ausschließlich in der USER-Phase während des Deployments ausgeführt. 104 -* (% style="color:#8e44ad" %)**audit.ps1**(%%) - Skript wird ausschließlich in der AUDIT-Phase während des Deployments ausgeführt. 105 -* **collect.ps1** - Sonderfall. Dieses Skript wird ausgeführt, wenn durch einen Anwender aktiv die Phase COLLECT zum Einsammeln von Einstellungen am Client aufgerufen werden. 78 +Die eigentliche Skripte liegen direkt unterhalb der Autoconf-Regel im Verzeichnis {{box}}win{{/box}} neben dem Ordner {{box}}meta{{/box}}. Dort kann das Script main.ps1 heißen oder je nach dem in welcher Phase des Deployment es ausgeführt werden soll auch custom.ps1, setup.ps1, audit.ps1. 106 106 107 -(% class="box warningmessage" %) 108 -((( 109 -(% style="font-size:12px" %)**Hinweis: **Skripte, die durch ihren Dateinamen auf die einzelnen Phasen eingeschränkt sind ((% style="color:#8e44ad; font-size:12px" %)lila eingefärbt(% style="font-size:12px" %)), können sich inhaltlich zueinander unterscheiden. Dadurch kann eine Autoconf-Rolle sehr flexibel gestaltet werden. 110 -))) 111 111 112 - 113 113 ==== **Beispielaufbau der main.ps1** ==== 114 114 115 -Im win-Verzeichnis können sich unterschiedliche Powershell-Skripte befinden. Der jeweilige Name der .ps1 Datei gibt an zu welcher Phase die Datei ausgeführt wird. 116 - 117 -{{code width="50%"}} 83 +Im win-Verzeichnis können sich unterschiedliche Powershellskripte befinden. Der jeweilige Name der .ps1 Datei gibt an zu welcher Phase die Datei ausgeführt wird. 118 118 user.ps1 = user Phase, nach der Anmeldung 119 119 120 120 custom.ps1 = custom Phase ... ... @@ -125,7 +125,7 @@ 125 125 126 126 main.ps1 = alle Phasen 127 127 128 -root@ctrl-g1:~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1 94 +root@ctrl-g1:~~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1 129 129 130 130 Param 131 131 ( ... ... @@ -136,10 +136,9 @@ 136 136 [String] 137 137 $psk 138 138 ) 139 - 140 -if ($ssid -ne '' -and $psk -ne '') { 105 +\\if ($ssid -ne '' -and $psk -ne '') { 141 141 $profile = @' 142 -<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"> 107 +<WLANProfile xmlns="http:~/~/www.microsoft.com/networking/WLAN/profile/v1"> 143 143 <name>{0}</name> 144 144 <SSIDConfig> 145 145 <SSID> ... ... @@ -164,38 +164,24 @@ 164 164 </MSM> 165 165 </WLANProfile> 166 166 '@ -f $ssid, $psk 167 - 168 - $file = "$AUTOCONF_TEMP_DIR\ld_wlan_psk\wlan.xml" 169 - 170 - $profile | Out-File (New-Item $file -Force) 171 - 172 - Get-NetAdapter | Where-Object { $_.PhysicalMediaType -eq 'Native 802.11' -or ` 132 +\\ $file = "$AUTOCONF_TEMP_DIR\ld_wlan_psk\wlan.xml" 133 +\\ $profile | Out-File (New-Item $file -Force) 134 +\\ Get-NetAdapter | Where-Object { $_.PhysicalMediaType -eq 'Native 802.11' -or ` 173 173 $_.PhysicalMediaType -eq 'Wireless LAN' -or ` 174 174 $_.PhysicalMediaType -eq 'Wireless WAN' } | ForEach-Object { 175 - 176 - Write-Verbose "Creating wlan profile for '$ssid' on interface '$($_.Name)'" 137 +\\ Write-Verbose "Creating wlan profile for '$ssid' on interface '$($_.Name)'" 177 177 netsh wlan add profile filename= "$file" interface= "$($_.Name)" 178 178 } 179 - 180 - Remove-Item -Path $file -Force 140 +\\ Remove-Item -Path $file -Force 181 181 } 182 182 183 -Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokalen Variablen. 184 -{{/code}} 143 +Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokale Variablen. 185 185 186 - ========145 +**Neue AutoConf-Regel freigeben** 187 187 188 -==== **Neue AutoConf-Rollen freigeben** ==== 189 - 190 -Neue Autoconf-Rollen können am Server durch Aufruf des Befehls {{box}}update-autoconf-archive{{/box}} im LXC ctrl-g1 aktualisiert werden. Der Aufruf dieses Kommandos ist auch nach Änderungen an Autoconf-Rollen nötig. 191 -Alternativ werden alle Autoconf-Rollen auch zeitbasiert alle 4 Stunden am Server eingelesen. Dies passiert automatisch im Hintergrund. 192 - 193 -Betätigen Sie außerdem im LD Control Center (mit aktiviertem Expertenmodus) den Reiter "AutoConf Rollen neu einlesen", damit selbst hinzugefügte Autoconf-Rollen verfügbar werden. 194 - 195 -(% class="box infomessage" %) 196 -((( 197 -Der Expertenmodus wird in den **Einstellungen (Zahnrad oben rechts) -> Entwickleroptionen -> Expertenmodus aktivieren** aktiv geschaltet. 198 -))) 199 - 200 -[[image:attach:autoconf.png||data-xwiki-image-style-border="true"]] 147 +Neue Autoconf-Regel müssen mit dem Befehl update-autoconf-archive eingelesen werden. 148 +Ansonsten werden die Autoconfrollen auch zeitbasiert (Alle 4 Stunden) neu eingelesen. 149 +Im Controlcenter im Expertenmodus dann folgenden Knopfen drücken, damit dort auch die neuen Autoconf-Regeln eingelesen werden. 201 201 151 + 152 +[[image:https://wiki.sbe.de/xwiki/bin/download/Main/SBE_intern/LogoDIDACT2.0/Lddeploy/Autoconf%20erstellen/WebHome/autoconf.png?rev=1.1||alt="autoconf.png"]]
- autoconf.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.cge@sbede - Größe
-
... ... @@ -1,1 +1,0 @@ 1 -73.0 KB - Inhalt
- image-20230315103418-1.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.TomAltenbrunn@sbede - Größe
-
... ... @@ -1,1 +1,0 @@ 1 -25.1 KB - Inhalt