Änderungen von Dokument Eigene Autoconf-Rolle erstellen

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

Von Version 16.1
bearbeitet von Jonas Mayer
am 2023/03/15 13:27
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 14.1
bearbeitet von Jonas Mayer
am 2023/03/15 13:05
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -11,27 +11,10 @@
11 11  * bis Puppet-Version **1.4.x** : {{code language="bash"}}/var/lib/ld-autoconf/custom/{{/code}}
12 12  * ab Puppet-Version **1.5.x **:  {{code language="bash" layout="LINENUMBERS"}}/data/ld/autoconf/custom/{{/code}}
13 13  
14 -Der Aufbau einer Autoconf-Rolle unterliegt einer vordefinierten Struktur, bestehend aus einer Beschreibungsdatei {{box}}meta/logodidact.yml{{/box}}, welche die Informationen zu Namen, Beschreibung, Ersteller, Variablen, usw. definiert, sowie zugehörige Skript-Dateien (PowerShell). Diese Skript-Dateien müssen - abhängig vom vorgesehen Ziel-Betriebssystem - in einem Unterordner {{box}} win/ {{/box}} (//Windows//) oder {{box}} lin/ {{/box}} (//Linux//) abgespeichert sein.  Zusätzlich besteht auch die Möglichkeit, in einem weiteren Unterordner {{box}} files/ {{/box}} beliebige Dateien in der Autoconf-Rolle mitzuliefern, wie zum Beispiel Bilder, Videos, etc.
14 +Der Aufbau einer Autoconf-Rolle unterliegt einer vordefinierten Struktur, bestehend aus einer Beschreibungsdatei {{box}}meta/logodidact.yml{{/box}}, welche die Informationen zu Namen, Beschreibung, Ersteller, Variablen, usw. definiert, sowie ausführbaren Skript-Dateien (PowerShell oder Bash). Diese Skript-Dateien müssen - abhängig vom vorgesehen Ziel-Betriebssystem - in einem Unterordner {{box}} win/ {{/box}} (//Windows//) oder {{box}} lin/ {{/box}} (//Linux//) abgespeichert sein.  Zusätzlich besteht auch die Möglichkeit, in einem weiteren Unterordner {{box}} files/ {{/box}} beliebige Dateien in der Autoconf-Rolle mitzuliefern, wie zum Beispiel Bilder, Videos, etc. mitzugeben.
15 15  
16 16  Der strukturelle Aufbau ist nachfolgend ersichtlich:[[image:image-20230315120842-3.png||height="213" width="640"]]
17 17  
18 -
19 -
20 -Für die Funktionalität der Autoconf-Rolle ist es also nötig, PowerShell-Skripte am Server abzuspeichern, die die Instruktionen an den Arbeitsstationen ausführen. Für diese Skripte sind folgende Dateinamen zulässig:
21 -
22 -* **main.ps1** - Skript wird in allen Phasen ausgeführt, die innerhalb der Beschreibungsdatei {{box}}meta/logodidact.yml{{/box}} festgelegt sind
23 -* (% style="color:#8e44ad" %)**setup.ps1**(%%) - Skript wird ausschließlich in der SETUP-Phase während des Deployments ausgeführt. In der Setup-Phase ist der Client noch veränderlich und besitzt noch keine Schutzfunktion, selbst wenn der Schutz aktiviert ist.
24 -* (% style="color:#8e44ad" %)**custom.ps1**(%%) - Skript wird ausschließlich in der CUSTOM-Phase ausgeführt. Dies geschieht sowohl 1x während des Deployments als auch später nach jedem Hochfahren des PCs 1x im Hintergrund.
25 -* (% style="color:#8e44ad" %)**user.ps1**(%%) - Skript wird ausschließlich in der USER-Phase ausgeführt. Diese Phase wird nicht direkt während des Deployments durchlaufen, sondern erst später während der Benutzeranmeldung an betriebsbereiten PCs.
26 -* (% style="color:#8e44ad" %)**audit.ps1**(%%) - Skript wird ausschließlich in der AUDIT-Phase ausgeführt. Das bedeutet, erst dann, wenn man an einem Client in den Audit-Modus zur Imagebearbeitung wechselt.
27 -* **collect.ps1** - Sonderfall. Dieses Skript wird ausgeführt, wenn durch einen Anwender aktiv die Phase COLLECT zum Einsammeln von Einstellungen am Client aufgerufen wird.
28 -
29 -(% class="box warningmessage" %)
30 -(((
31 -(% 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.
32 -)))
33 -
34 -
35 35  ----
36 36  
37 37  ==== **Beispielaufbau einer logodidact.yml:** ====
... ... @@ -39,54 +39,6 @@
39 39  Eine Autoconf-Beispielvorlage liegt serverseitig im Unterordner {{box}}/data/ld/autoconf/custom/example/{{/box}} abgespeichert. Darin wird die Verwendung verschiedener Variablentypen aufgezeigt, die als Parameter an die Skript-Dateien weitergegeben werden können. Die Verwendung solcher Variablen innerhalb einer Autoconf-Rolle ist optional, je nach Zweck jedoch häufig sinnvoll.
40 40  
41 41  
42 -**Beispiel zur Deklaration einer Autoconf Variable in logodidact.yml:**
43 -
44 -(% class="box" %)
45 -(((
46 -ld_info:
47 - display_name: Meine eigene Autoconf-Rolle 1
48 -(% style="color:#27ae60" %) #[...](%%)
49 -\\ vars:
50 - globalLogLevel:
51 - display_name: Loglevel
52 - optional: true
53 - type: ENUM
54 - values:
55 - - none
56 - - compact
57 - - detailed
58 - - verbose
59 -\\(% style="color:#27ae60" %) #[...]
60 -)))
61 -
62 -(% class="box infomessage" %)
63 -(((
64 -(% style="font-size:12px" %)**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.
65 -)))
66 -
67 -----
68 -
69 -==== **Neue AutoConf-Rollen nach Fertigstellung freigeben** ====
70 -
71 -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.
72 -Alternativ werden alle Autoconf-Rollen auch zeitbasiert alle 4 Stunden am Server eingelesen. Dies passiert automatisch im Hintergrund.
73 -
74 -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.
75 -
76 -(% class="box infomessage" %)
77 -(((
78 -Der Expertenmodus wird in den **Einstellungen (Zahnrad oben rechts) -> Entwickleroptionen -> Expertenmodus aktivieren** aktiv geschaltet.
79 -)))
80 -
81 -[[image:attach:autoconf.png||data-xwiki-image-style-border="true" class="img-thumbnail"]]
82 -
83 -
84 -
85 -----
86 -
87 -
88 -==== **Weiteres, funktionsfertiges Beispiel: Rolle „WLAN Profil mit PSK anlegen“** ====
89 -
90 90  Zum besseren Verständnis wird nachfolgend eine mitgelieferte Autoconf-Rolle zur Konfiguration eines WLAN-Profils (SSID inkl. PSK) an Clients näher beleuchtet.
91 91  
92 92  (% class="box" %)
... ... @@ -135,14 +135,61 @@
135 135  * type = bestimmt den Typ der Variable. Gültige Typen sind: STRING, PASSWORD, BOOLEAN, ENUM, ARRAY, INTEGER
136 136  * example = Zeigt einen grau eingefärbten Beispieltext innerhalb der definierten Variable an, ohne dass dieser als Wert festgelegt ist (Hilfsmittel für Anwender).
137 137  
138 -(% 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.
73 +(% style="color:#2980b9" %) systems (%%)= Legt fest, welche Betriebssystem-Typen durch die Autoconf-Rolle unterstützt werden. Gültige Systeme sind: WINDOWS / LINUX
139 139  
140 140  
141 -===== **Aufbau der main.ps1** =====
76 +**Beispiel für eine Variable:**
142 142  
143 -Im Verzeichnis {{box}} win/ {{/box}} können sich unterschiedliche Powershell-Skripte befinden. In dieser Rolle liegt das allgemeingültige Skript main.ps1 vor.
78 +(% class="box" %)
79 +(((
80 +globalLogLevel:
81 + display_name: Loglevel
82 + optional: true
83 + type: ENUM
84 + values:
85 + - none
86 + - compact
87 + - detailed
88 + - verbose
89 +)))
144 144  
91 +(% class="box infomessage" %)
92 +(((
93 +(% style="font-size:12px" %)**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.
94 +)))
95 +
96 +----
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. Für diese Skripte sind folgende Dateinamen zulässig:
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 ausgeführt. Dies geschieht sowohl 1x während des Deployments als auch später nach jedem Hochfahren des PCs im Hintergrund.
103 +* (% style="color:#8e44ad" %)**user.ps1**(%%) - Skript wird ausschließlich in der USER-Phase ausgeführt. Diese Phase wird nicht direkt während des Deployments durchlaufen, sondern erst später während der Benutzeranmeldung an betriebsbereiten PCs.
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 wird.
106 +
107 +(% class="box warningmessage" %)
108 +(((
109 +(% 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.
110 +)))
111 +
112 +
113 +==== **Beispielaufbau der main.ps1** ====
114 +
115 +Im Verzeichnis {{box}} win/ {{/box}} können sich unterschiedliche Powershell-Skripte befinden. Der jeweilige Name der .ps1 Datei gibt an zu welcher Phase die Datei ausgeführt wird.
116 +
145 145  {{code width="50%"}}
118 +user.ps1 = user Phase, nach der Anmeldung
119 +
120 +custom.ps1 = custom Phase
121 +
122 +audit.ps1 = audit Phase
123 +
124 +setup.ps1 = setup Phase
125 +
126 +main.ps1 = alle Phasen
127 +
146 146  root@ctrl-g1:~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1
147 147  
148 148  Param
... ... @@ -203,16 +203,17 @@
203 203  
204 204  ==== ====
205 205  
206 -==== ====
188 +==== **Neue AutoConf-Rollen freigeben** ====
207 207  
208 -==== ====
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.
209 209  
210 -==== ====
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.
211 211  
212 -==== ====
195 +(% class="box infomessage" %)
196 +(((
197 +Der Expertenmodus wird in den **Einstellungen (Zahnrad oben rechts) -> Entwickleroptionen -> Expertenmodus aktivieren** aktiv geschaltet.
198 +)))
213 213  
214 -==== ====
215 -
216 -==== ====
217 -
218 -==== ====
200 +[[image:attach:autoconf.png||data-xwiki-image-style-border="true"]]
201 +