Version 1.1 von Christian Germann am 2022/08/09 10:16

Zeige letzte Bearbeiter
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"]]