Änderungen von Dokument Eigene Autoconf-Rolle erstellen

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

Von Version 7.1
bearbeitet von Jonas Mayer
am 2023/03/15 08:54
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 1.1
bearbeitet von Christian Germann
am 2022/08/09 10:16
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Titel
... ... @@ -1,1 +1,1 @@
1 -Eigene Autoconf-Rolle erstellen
1 +Autoconf-Konfiguration erstellen
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.jonasmayer@sbede
1 +XWiki.cge@sbede
Inhalt
... ... @@ -1,23 +1,13 @@
1 -Autoconf liegt wie der Vorgänger Ansible im ctrl-g1 Container und dient dazu, Einstellungen oder Konfigurationen auf die deployten Rechner zu übertragen, ohne ein Image dafür zu schreiben.
1 +Autoconf liegt wie der Vorgänger Ansible im ctrl-g1 Container.
2 +Dort im Pfad /usr/lib/ld-autoconf/logodidact/roles/ finden sich die bestehenden Rollen.
3 +Für eigene Rollen sollte die Rolle unter  /var/lib/ld-autoconf/custom abgelegt werden. Nach einem LD-Update geht so die Arbeit nicht verloren!
2 2  
3 -Von SBE ausgelieferte Rollen befinden sich Im Pfad {{box}}/usr/lib/ld-autoconf/logodidact/roles/{{/box}}.
5 +Eine Autoconf-Regel besteht aus den Informationen zur Regel, die in der logodidact.yml im Ordner meta liegen und den jeweiligen Skripten für Windows im Unterordner win.
6 +Linux-Skripte würden sich im Unterordner lin befinden.
7 +\\**Beispielaufbau der logodidact.yml:**
4 4  
5 -Selbst erstellte Autoconf-Rollen müssen unter {{box}}/data/ld/autoconf/custom{{/box}} (bzw. früher vor Puppet-Version 1.5.x unter {{box}}/var/lib/ld-autoconf/custom/{{/box}}) abgelegt werden, damit diese nicht durch Updates überschrieben werden.
6 -
7 -Der Aufbau einer Autoconf-Rolle muss einer Struktur folgen, damit der Server diese Interpretieren kann.
8 -
9 -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.
10 -
11 -
12 -==== **Beispielaufbau der logodidact.yml:** ====
13 -
14 -(% class="box" %)
15 -(((
16 16  root@ctrl-g1:~~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/meta/logodidact.yml
17 -)))
18 18  
19 -(% class="box" %)
20 -(((
21 21  ld_info:
22 22   authors:
23 23   - Marcel Petersen
... ... @@ -42,31 +42,20 @@
42 42   systems:
43 43   - WINDOWS
44 44   - LINUX
45 -)))
46 46  
47 -display_name = Anzeigename der Autoconf-Rolle im LD Control Center
36 +uuid = ID der Autoconf-Regel, muss einmalig sein. Bei einer eigenen Autoconf-Regel muss der Wert am besten neugeniert werden. [[https:~~/~~/www.uuidgenerator.net/>>url:https://www.uuidgenerator.net/]]
48 48  
49 -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/]]
38 +tags = beschreibt in welcher Phase die Autoconf-Regel aktiv ist.
50 50  
51 -tags = beschreibt, in welchen Phasen die Autoconf-Regel ausgeführt wird.
40 +vars = definiert Variablen die den Skripten übergeben werden
52 52  
53 -systems = Legt fest, welche Betriebssystem-Typen durch die Autoconf-Rolle unterstützt werden. Gültige Systeme sind: WINDOWS / LINUX
42 +display_name = Name der Variable im ctrl
54 54  
55 -vars = definiert mögliche Variablen, die den Skripten übergeben werden
44 +optional = bestimmt ob die Option in der Autoconf-Rege optional ist
56 56  
57 - ~* display_name = Name der konfigurierbaren Variable im Control Center
46 +type = bestimmt den Wert der Variable. Mögliche Werte STRING, PASSWORD, BOOLEAN, ENUM, ARRAY, INTEGER
47 +ENUM entspricht einem Dropdown-Menü, in dem man aus vordefinierte Werte auswählen kann:
58 58  
59 - ~* example = Zeigt einen grau eingefärbten Beispieltext innerhalb Variable an, ohne dass dieser als Wert festgelegt ist (Hilfsmittel für Anwender).
60 -
61 - ~* optional = bestimmt, ob die Variable zwingend mit einem Wert belegt werden muss
62 -
63 - ~* type = bestimmt den Typ der Variable. Gültige Typen sind: STRING, PASSWORD, BOOLEAN, ENUM, ARRAY, INTEGER
64 -
65 -
66 -**Beispiel für eine Variable:**
67 -
68 -(% class="box" %)
69 -(((
70 70  globalLogLevel:
71 71   display_name: Loglevel
72 72   optional: true
... ... @@ -76,29 +76,14 @@
76 76   - compact
77 77   - detailed
78 78   - full
79 -)))
80 80  
81 -(% style="font-size:12px" %)Tipp: Der Variablentyp ENUM aus dem Beispiel entspricht einem Dropdown-Menü, in dem man aus vordefinierte Werte auswählen kann:
59 +example = Gibt eine grauen Beispielwert für die Variable vor.
82 82  
61 +systems = für welches Betriebssystem existieren Skripte in der Autoconf-Regel
83 83  
84 -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:
63 +**Beispielaufbau der main.ps1**
85 85  
86 -* main.ps1 - Skript wird in allen Phasen ausgeführt, die innerhalb der Metainformationen {{box}}logodidact.yml{{/box}} festgelegt sind
87 -* (% style="color:#8e44ad" %)setup.ps1(%%) - Skript wird in der SETUP-Phase während des Deployments ausgeführt.
88 -* (% style="color:#8e44ad" %)custom.ps1(%%) - Skript wird in der SETUP-Phase während des Deployments ausgeführt.
89 -* (% style="color:#8e44ad" %)user.ps1(%%) - Skript wird in der SETUP-Phase während des Deployments ausgeführt.
90 -* (% style="color:#9b59b6" %)audit.ps1(%%) - Skript wird in der SETUP-Phase während des Deployments ausgeführt.
91 -* collect.ps1 - Sonderfall. Dieses Skript wird ausgeführt, wenn durch einen Anwender aktiv die Phase COLLECT zum Einsammeln von Einstellungen am Client aufgerufen werden.
92 -
93 -(% style="font-size:12px" %)Hinweis:
94 -Skripte, die durch ihren Dateinamen auf die einzelnen Phasen eingeschränkt sind ((% style="font-size: 12px; color: rgb(142, 68, 173)" %)lila eingefärbt(% style="font-size:12px" %)), können sich inhaltlich zu einander unterscheiden. Dadurch kann eine Autoconf-Rolle sehr flexibel gestaltet werden.
95 -
96 -
97 -==== **Beispielaufbau der main.ps1** ====
98 -
99 99  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.
100 -
101 -{{code}}
102 102  user.ps1 = user Phase, nach der Anmeldung
103 103  
104 104  custom.ps1 = custom Phase
... ... @@ -109,7 +109,7 @@
109 109  
110 110  main.ps1 = alle Phasen
111 111  
112 -root@ctrl-g1:~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1
76 +root@ctrl-g1:~~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1
113 113  
114 114  Param
115 115  (
... ... @@ -120,10 +120,9 @@
120 120   [String]
121 121   $psk
122 122  )
123 -
124 -if ($ssid -ne '' -and $psk -ne '') {
87 +\\if ($ssid -ne '' -and $psk -ne '') {
125 125   $profile = @'
126 -<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
89 +<WLANProfile xmlns="http:~/~/www.microsoft.com/networking/WLAN/profile/v1">
127 127   <name>{0}</name>
128 128   <SSIDConfig>
129 129   <SSID>
... ... @@ -148,32 +148,24 @@
148 148   </MSM>
149 149  </WLANProfile>
150 150  '@ -f $ssid, $psk
151 -
152 - $file = "$AUTOCONF_TEMP_DIR\ld_wlan_psk\wlan.xml"
153 -
154 - $profile | Out-File (New-Item $file -Force)
155 -
156 - Get-NetAdapter | Where-Object { $_.PhysicalMediaType -eq 'Native 802.11' -or `
114 +\\ $file = "$AUTOCONF_TEMP_DIR\ld_wlan_psk\wlan.xml"
115 +\\ $profile | Out-File (New-Item $file -Force)
116 +\\ Get-NetAdapter | Where-Object { $_.PhysicalMediaType -eq 'Native 802.11' -or `
157 157   $_.PhysicalMediaType -eq 'Wireless LAN' -or `
158 158   $_.PhysicalMediaType -eq 'Wireless WAN' } | ForEach-Object {
159 -
160 - Write-Verbose "Creating wlan profile for '$ssid' on interface '$($_.Name)'"
119 +\\ Write-Verbose "Creating wlan profile for '$ssid' on interface '$($_.Name)'"
161 161   netsh wlan add profile filename= "$file" interface= "$($_.Name)"
162 162   }
163 -
164 - Remove-Item -Path $file -Force
122 +\\ Remove-Item -Path $file -Force
165 165  }
166 166  
167 167  Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokale Variablen.
168 -{{/code}}
169 169  
170 -==== ====
127 +**Neue AutoConf-Regel freigeben**
171 171  
172 -==== **Neue AutoConf-Regel freigeben** ====
173 -
174 -Neue Autoconf-Regel müssen mit dem Befehl {{box}}update-autoconf-archive{{/box}} eingelesen werden. 
129 +Neue Autoconf-Regel müssen mit dem Befehl update-autoconf-archive eingelesen werden. 
175 175  Ansonsten werden die Autoconfrollen auch zeitbasiert (Alle 4 Stunden) neu eingelesen.
176 -Drücken Sie Im Controlcenter mit aktivieren Expertenmodus folgenden Knopfen, damit dort auch die neuen Autoconf-Regeln verfügbar werden.
177 -
178 -[[image:attach:autoconf.png||data-xwiki-image-style-border="true"]]
131 +Im Controlcenter im Expertenmodus dann folgenden Knopfen drücken, damit dort auch die neuen Autoconf-Regeln eingelesen werden.
179 179  
133 +
134 +[[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