Wiki-Quellcode von Autoconf-Konfiguration erstellen
Version 1.1 von Christian Germann am 2022/08/09 10:16
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
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! | ||
4 | |||
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:** | ||
8 | |||
9 | root@ctrl-g1:~~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/meta/logodidact.yml | ||
10 | |||
11 | ld_info: | ||
12 | authors: | ||
13 | - Marcel Petersen | ||
14 | company: SBE network solutions GmbH | ||
15 | display_name: WLAN Profil mit PSK anlegen | ||
16 | license: SBE | ||
17 | uuid: 52318636-c4f5-11ea-baf9-0bff00c66ff4 | ||
18 | visible: true | ||
19 | priority: 0 | ||
20 | applyAlways: false | ||
21 | tags: | ||
22 | - CUSTOM | ||
23 | vars: | ||
24 | ssid: | ||
25 | display_name: SSID | ||
26 | optional: false | ||
27 | type: STRING | ||
28 | psk: | ||
29 | display_name: Passwort | ||
30 | optional: false | ||
31 | type: PASSWORD | ||
32 | systems: | ||
33 | - WINDOWS | ||
34 | - LINUX | ||
35 | |||
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/]] | ||
37 | |||
38 | tags = beschreibt in welcher Phase die Autoconf-Regel aktiv ist. | ||
39 | |||
40 | vars = definiert Variablen die den Skripten übergeben werden | ||
41 | |||
42 | display_name = Name der Variable im ctrl | ||
43 | |||
44 | optional = bestimmt ob die Option in der Autoconf-Regel optional ist | ||
45 | |||
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: | ||
48 | |||
49 | globalLogLevel: | ||
50 | display_name: Loglevel | ||
51 | optional: true | ||
52 | type: ENUM | ||
53 | values: | ||
54 | - none | ||
55 | - compact | ||
56 | - detailed | ||
57 | - full | ||
58 | |||
59 | example = Gibt eine grauen Beispielwert für die Variable vor. | ||
60 | |||
61 | systems = für welches Betriebssystem existieren Skripte in der Autoconf-Regel | ||
62 | |||
63 | **Beispielaufbau der main.ps1** | ||
64 | |||
65 | 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. | ||
66 | user.ps1 = user Phase, nach der Anmeldung | ||
67 | |||
68 | custom.ps1 = custom Phase | ||
69 | |||
70 | audit.ps1 = audit Phase | ||
71 | |||
72 | setup.ps1 = setup Phase | ||
73 | |||
74 | main.ps1 = alle Phasen | ||
75 | |||
76 | root@ctrl-g1:~~ # cat /usr/lib/ld-autoconf/logodidact/roles/ld_wlan_psk/win/main.ps1 | ||
77 | |||
78 | Param | ||
79 | ( | ||
80 | [parameter(Mandatory=$false)] | ||
81 | [String] | ||
82 | $ssid, | ||
83 | [parameter(Mandatory=$false)] | ||
84 | [String] | ||
85 | $psk | ||
86 | ) | ||
87 | \\if ($ssid -ne '' -and $psk -ne '') { | ||
88 | $profile = @' | ||
89 | <WLANProfile xmlns="http:~/~/www.microsoft.com/networking/WLAN/profile/v1"> | ||
90 | <name>{0}</name> | ||
91 | <SSIDConfig> | ||
92 | <SSID> | ||
93 | <name>{0}</name> | ||
94 | </SSID> | ||
95 | </SSIDConfig> | ||
96 | <connectionType>ESS</connectionType> | ||
97 | <connectionMode>auto</connectionMode> | ||
98 | <MSM> | ||
99 | <security> | ||
100 | <authEncryption> | ||
101 | <authentication>WPA2PSK</authentication> | ||
102 | <encryption>AES</encryption> | ||
103 | <useOneX>false</useOneX> | ||
104 | </authEncryption> | ||
105 | <sharedKey> | ||
106 | <keyType>passPhrase</keyType> | ||
107 | <protected>false</protected> | ||
108 | <keyMaterial>{1}</keyMaterial> | ||
109 | </sharedKey> | ||
110 | </security> | ||
111 | </MSM> | ||
112 | </WLANProfile> | ||
113 | '@ -f $ssid, $psk | ||
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 ` | ||
117 | $_.PhysicalMediaType -eq 'Wireless LAN' -or ` | ||
118 | $_.PhysicalMediaType -eq 'Wireless WAN' } | ForEach-Object { | ||
119 | \\ Write-Verbose "Creating wlan profile for '$ssid' on interface '$($_.Name)'" | ||
120 | netsh wlan add profile filename= "$file" interface= "$($_.Name)" | ||
121 | } | ||
122 | \\ Remove-Item -Path $file -Force | ||
123 | } | ||
124 | |||
125 | Param() = hier werden die übergebenen Parameter von meta/logodidact.yml zu lokale Variablen. | ||
126 | |||
127 | **Neue AutoConf-Regel freigeben** | ||
128 | |||
129 | Neue Autoconf-Regel müssen mit dem Befehl update-autoconf-archive eingelesen werden. | ||
130 | Ansonsten werden die Autoconfrollen auch zeitbasiert (Alle 4 Stunden) neu eingelesen. | ||
131 | Im Controlcenter im Expertenmodus dann folgenden Knopfen drücken, damit dort auch die neuen Autoconf-Regeln eingelesen werden. | ||
132 | |||
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"]] |