Änderungen von Dokument Eigene Autoconf-Rolle erstellen
Zuletzt geändert von Tom Altenbrunn am 2023/03/17 08:03
Von Version 12.8
bearbeitet von Tom Altenbrunn
am 2023/03/15 11:06
am 2023/03/15 11:06
Ä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,23 +1,14 @@ 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}} 14 - 15 - 16 -Der Aufbau einer Autoconf-Rolle unterliegt einer vordefinierten Struktur, bestehend aus einer YAML-Datei, welche die Informationen zu Namen und Variablen definiert, sowie der eigentlichen ausführbaren Skript-Datei (Powershell oder Bash) und einer damit der Server diese Interpretieren kann. 17 - 18 -Unterhalb der Regel muss ein Ordner mit Namen {{box}}meta{{/box}} mit einer {{box}}logodidact.yml{{/box}} liegen. In dieser Datei sind Name, Beschreibung, Ersteller sowie weitere Informationen zur Autoconf-Rolle festgelegt. 19 - 20 - 21 21 ==== **Beispielaufbau der logodidact.yml:** ==== 22 22 23 23 (% class="box" %) ... ... @@ -53,27 +53,19 @@ 53 53 - LINUX 54 54 ))) 55 55 56 - display_name= Anzeigenameder Autoconf-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/]] 57 57 58 - 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. 59 59 60 - tags =beschreibt,in welchenPhasendieAutoconf-Regel ausgeführtwird.51 +vars = definiert Variablen die den Skripten übergeben werden 61 61 62 -sy stems=Legtfest,welche Betriebssystem-Typendurch dieAutoconf-Rolle unterstützt werden. Gültige Systeme sind: WINDOWS / LINUX53 +display_name = Name der Variable im ctrl 63 63 64 - vars=definiertmöglicheVariablen,dieden Skriptenübergebenwerden55 +optional = bestimmt ob die Option in der Autoconf-Regel optional ist 65 65 66 - ~* display_name = Name der konfigurierbaren Variable im Control Center 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: 67 67 68 - ~* example = Zeigt einen grau eingefärbten Beispieltext innerhalb Variable an, ohne dass dieser als Wert festgelegt ist (Hilfsmittel für Anwender). 69 - 70 - ~* optional = bestimmt, ob die Variable zwingend mit einem Wert belegt werden muss 71 - 72 - ~* type = bestimmt den Typ der Variable. Gültige Typen sind: STRING, PASSWORD, BOOLEAN, ENUM, ARRAY, INTEGER 73 - 74 - 75 -**Beispiel für eine Variable:** 76 - 77 77 (% class="box" %) 78 78 ((( 79 79 globalLogLevel: ... ... @@ -87,26 +87,17 @@ 87 87 - full 88 88 ))) 89 89 90 - (% style="font-size:12px" %)**Tipp:** DerVariablentypENUMaus demBeispielntsprichteinem Dropdown-Menü,indemman aus vordefinierte Werteauswählenkann:73 +example = Gibt eine grauen Beispielwert für die Variable vor. 91 91 75 +systems = für welches Betriebssystem existieren Skripte in der Autoconf-Regel 92 92 93 -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: 94 94 95 -* **main.ps1** - Skript wird in allen Phasen ausgeführt, die innerhalb der Beschreibungsdatei {{box}}meta/logodidact.yml{{/box}} festgelegt sind 96 -* (% style="color:#8e44ad" %)**setup.ps1**(%%) - Skript wird ausschließlich in der SETUP-Phase während des Deployments ausgeführt. 97 -* (% style="color:#8e44ad" %)**custom.ps1**(%%) - Skript wird ausschließlich in der CUSTOM-Phase während des Deployments ausgeführt. 98 -* (% style="color:#8e44ad" %)**user.ps1**(%%) - Skript wird ausschließlich in der USER-Phase während des Deployments ausgeführt. 99 -* (% style="color:#8e44ad" %)**audit.ps1**(%%) - Skript wird ausschließlich in der AUDIT-Phase während des Deployments ausgeführt. 100 -* **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. 101 101 102 -(% 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. 103 103 104 - 105 105 ==== **Beispielaufbau der main.ps1** ==== 106 106 107 107 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. 108 - 109 -{{code}} 110 110 user.ps1 = user Phase, nach der Anmeldung 111 111 112 112 custom.ps1 = custom Phase ... ... @@ -117,7 +117,7 @@ 117 117 118 118 main.ps1 = alle Phasen 119 119 120 -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 121 121 122 122 Param 123 123 ( ... ... @@ -128,10 +128,9 @@ 128 128 [String] 129 129 $psk 130 130 ) 131 - 132 -if ($ssid -ne '' -and $psk -ne '') { 105 +\\if ($ssid -ne '' -and $psk -ne '') { 133 133 $profile = @' 134 -<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"> 107 +<WLANProfile xmlns="http:~/~/www.microsoft.com/networking/WLAN/profile/v1"> 135 135 <name>{0}</name> 136 136 <SSIDConfig> 137 137 <SSID> ... ... @@ -156,33 +156,24 @@ 156 156 </MSM> 157 157 </WLANProfile> 158 158 '@ -f $ssid, $psk 159 - 160 - $file = "$AUTOCONF_TEMP_DIR\ld_wlan_psk\wlan.xml" 161 - 162 - $profile | Out-File (New-Item $file -Force) 163 - 164 - 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 ` 165 165 $_.PhysicalMediaType -eq 'Wireless LAN' -or ` 166 166 $_.PhysicalMediaType -eq 'Wireless WAN' } | ForEach-Object { 167 - 168 - Write-Verbose "Creating wlan profile for '$ssid' on interface '$($_.Name)'" 137 +\\ Write-Verbose "Creating wlan profile for '$ssid' on interface '$($_.Name)'" 169 169 netsh wlan add profile filename= "$file" interface= "$($_.Name)" 170 170 } 171 - 172 - Remove-Item -Path $file -Force 140 +\\ Remove-Item -Path $file -Force 173 173 } 174 174 175 175 Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokale Variablen. 176 -{{/code}} 177 177 178 - ========145 +**Neue AutoConf-Regel freigeben** 179 179 180 -==== **Neue AutoConf-Rollen freigeben** ==== 181 - 182 -Neue Autoconf-Rollen müssen 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. 183 -Alternativ werden alle Autoconf-Rollen auch zeitbasiert alle 4 Stunden am Server eingelesen. Dies passiert automatisch im Hintergrund. 184 - 185 -Betätigen Sie außerdem im LD Control Center (mit aktiviertem Expertenmodus) folgenden Knopf, damit selbst hinzugefügte Autoconf-Rollen verfügbar werden. 186 - 187 -[[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. 188 188 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