Wiki-Quellcode von Eigene Autoconf-Regel erstellen
Version 5.1 von Jonas Mayer am 2023/03/15 08:23
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
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. | ||
2 | |||
3 | Von SBE ausgelieferte Rollen befinden sich Im Pfad {{box}}/usr/lib/ld-autoconf/logodidact/roles/{{/box}}. | ||
4 | |||
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 | |||
7 | Der Aufbau einer Autoconf-Regel 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. | ||
10 | |||
11 | |||
12 | ==== **Beispielaufbau der logodidact.yml:** ==== | ||
13 | |||
14 | (% class="box" %) | ||
15 | ((( | ||
16 | root@ctrl-g1:~~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/meta/logodidact.yml | ||
17 | ))) | ||
18 | |||
19 | (% class="box" %) | ||
20 | ((( | ||
21 | ld_info: | ||
22 | authors: | ||
23 | - Marcel Petersen | ||
24 | company: SBE network solutions GmbH | ||
25 | display_name: WLAN Profil mit PSK anlegen | ||
26 | license: SBE | ||
27 | uuid: 52318636-c4f5-11ea-baf9-0bff00c66ff4 | ||
28 | visible: true | ||
29 | priority: 0 | ||
30 | applyAlways: false | ||
31 | tags: | ||
32 | - CUSTOM | ||
33 | vars: | ||
34 | ssid: | ||
35 | display_name: SSID | ||
36 | optional: false | ||
37 | type: STRING | ||
38 | psk: | ||
39 | display_name: Passwort | ||
40 | optional: false | ||
41 | type: PASSWORD | ||
42 | systems: | ||
43 | - WINDOWS | ||
44 | - LINUX | ||
45 | ))) | ||
46 | |||
47 | 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/]] | ||
48 | |||
49 | tags = beschreibt in welcher Phase die Autoconf-Regel aktiv ist. | ||
50 | |||
51 | vars = definiert Variablen die den Skripten übergeben werden | ||
52 | |||
53 | display_name = Name der Variable im ctrl | ||
54 | |||
55 | optional = bestimmt ob die Option in der Autoconf-Regel optional ist | ||
56 | |||
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: | ||
59 | |||
60 | (% class="box" %) | ||
61 | ((( | ||
62 | globalLogLevel: | ||
63 | display_name: Loglevel | ||
64 | optional: true | ||
65 | type: ENUM | ||
66 | values: | ||
67 | - none | ||
68 | - compact | ||
69 | - detailed | ||
70 | - full | ||
71 | ))) | ||
72 | |||
73 | example = Gibt eine grauen Beispielwert für die Variable vor. | ||
74 | |||
75 | systems = für welches Betriebssystem existieren Skripte in der Autoconf-Regel | ||
76 | |||
77 | |||
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. | ||
79 | |||
80 | |||
81 | ==== **Beispielaufbau der main.ps1** ==== | ||
82 | |||
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. | ||
84 | |||
85 | {{code}} | ||
86 | user.ps1 = user Phase, nach der Anmeldung | ||
87 | |||
88 | custom.ps1 = custom Phase | ||
89 | |||
90 | audit.ps1 = audit Phase | ||
91 | |||
92 | setup.ps1 = setup Phase | ||
93 | |||
94 | main.ps1 = alle Phasen | ||
95 | |||
96 | root@ctrl-g1:~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1 | ||
97 | |||
98 | Param | ||
99 | ( | ||
100 | [parameter(Mandatory=$false)] | ||
101 | [String] | ||
102 | $ssid, | ||
103 | [parameter(Mandatory=$false)] | ||
104 | [String] | ||
105 | $psk | ||
106 | ) | ||
107 | |||
108 | if ($ssid -ne '' -and $psk -ne '') { | ||
109 | $profile = @' | ||
110 | <WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"> | ||
111 | <name>{0}</name> | ||
112 | <SSIDConfig> | ||
113 | <SSID> | ||
114 | <name>{0}</name> | ||
115 | </SSID> | ||
116 | </SSIDConfig> | ||
117 | <connectionType>ESS</connectionType> | ||
118 | <connectionMode>auto</connectionMode> | ||
119 | <MSM> | ||
120 | <security> | ||
121 | <authEncryption> | ||
122 | <authentication>WPA2PSK</authentication> | ||
123 | <encryption>AES</encryption> | ||
124 | <useOneX>false</useOneX> | ||
125 | </authEncryption> | ||
126 | <sharedKey> | ||
127 | <keyType>passPhrase</keyType> | ||
128 | <protected>false</protected> | ||
129 | <keyMaterial>{1}</keyMaterial> | ||
130 | </sharedKey> | ||
131 | </security> | ||
132 | </MSM> | ||
133 | </WLANProfile> | ||
134 | '@ -f $ssid, $psk | ||
135 | |||
136 | $file = "$AUTOCONF_TEMP_DIR\ld_wlan_psk\wlan.xml" | ||
137 | |||
138 | $profile | Out-File (New-Item $file -Force) | ||
139 | |||
140 | Get-NetAdapter | Where-Object { $_.PhysicalMediaType -eq 'Native 802.11' -or ` | ||
141 | $_.PhysicalMediaType -eq 'Wireless LAN' -or ` | ||
142 | $_.PhysicalMediaType -eq 'Wireless WAN' } | ForEach-Object { | ||
143 | |||
144 | Write-Verbose "Creating wlan profile for '$ssid' on interface '$($_.Name)'" | ||
145 | netsh wlan add profile filename= "$file" interface= "$($_.Name)" | ||
146 | } | ||
147 | |||
148 | Remove-Item -Path $file -Force | ||
149 | } | ||
150 | |||
151 | Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokale Variablen. | ||
152 | {{/code}} | ||
153 | |||
154 | ==== ==== | ||
155 | |||
156 | ==== **Neue AutoConf-Regel freigeben** ==== | ||
157 | |||
158 | Neue Autoconf-Regel müssen mit dem Befehl {{box}}update-autoconf-archive{{/box}} eingelesen werden. | ||
159 | Ansonsten werden die Autoconfrollen auch zeitbasiert (Alle 4 Stunden) neu eingelesen. | ||
160 | Drücken Sie Im Controlcenter mit aktivieren Expertenmodus folgenden Knopfen, damit dort auch die neuen Autoconf-Regeln verfügbar werden. | ||
161 | |||
162 | [[image:attach:autoconf.png||data-xwiki-image-style-border="true"]] | ||
163 |