Wiki-Quellcode von Autoconf-Konfiguration erstellen
Version 2.1 von Christian Germann am 2022/08/09 10:53
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 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 | user.ps1 = user Phase, nach der Anmeldung | ||
85 | |||
86 | custom.ps1 = custom Phase | ||
87 | |||
88 | audit.ps1 = audit Phase | ||
89 | |||
90 | setup.ps1 = setup Phase | ||
91 | |||
92 | main.ps1 = alle Phasen | ||
93 | |||
94 | root@ctrl-g1:~~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1 | ||
95 | |||
96 | Param | ||
97 | ( | ||
98 | [parameter(Mandatory=$false)] | ||
99 | [String] | ||
100 | $ssid, | ||
101 | [parameter(Mandatory=$false)] | ||
102 | [String] | ||
103 | $psk | ||
104 | ) | ||
105 | \\if ($ssid -ne '' -and $psk -ne '') { | ||
106 | $profile = @' | ||
107 | <WLANProfile xmlns="http:~/~/www.microsoft.com/networking/WLAN/profile/v1"> | ||
108 | <name>{0}</name> | ||
109 | <SSIDConfig> | ||
110 | <SSID> | ||
111 | <name>{0}</name> | ||
112 | </SSID> | ||
113 | </SSIDConfig> | ||
114 | <connectionType>ESS</connectionType> | ||
115 | <connectionMode>auto</connectionMode> | ||
116 | <MSM> | ||
117 | <security> | ||
118 | <authEncryption> | ||
119 | <authentication>WPA2PSK</authentication> | ||
120 | <encryption>AES</encryption> | ||
121 | <useOneX>false</useOneX> | ||
122 | </authEncryption> | ||
123 | <sharedKey> | ||
124 | <keyType>passPhrase</keyType> | ||
125 | <protected>false</protected> | ||
126 | <keyMaterial>{1}</keyMaterial> | ||
127 | </sharedKey> | ||
128 | </security> | ||
129 | </MSM> | ||
130 | </WLANProfile> | ||
131 | '@ -f $ssid, $psk | ||
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 ` | ||
135 | $_.PhysicalMediaType -eq 'Wireless LAN' -or ` | ||
136 | $_.PhysicalMediaType -eq 'Wireless WAN' } | ForEach-Object { | ||
137 | \\ Write-Verbose "Creating wlan profile for '$ssid' on interface '$($_.Name)'" | ||
138 | netsh wlan add profile filename= "$file" interface= "$($_.Name)" | ||
139 | } | ||
140 | \\ Remove-Item -Path $file -Force | ||
141 | } | ||
142 | |||
143 | Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokale Variablen. | ||
144 | |||
145 | **Neue AutoConf-Regel freigeben** | ||
146 | |||
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. | ||
150 | |||
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"]] |