Uefi Boot Hacken per Skript setzen lassen

Antworten
Benutzeravatar
Jet0JLH
Administrator
Beiträge: 28
Registriert: So 11. Okt 2015, 21:37

Uefi Boot Hacken per Skript setzen lassen

Beitrag von Jet0JLH »

Wer z.B. seine Clients importiert möchte diese bestimmt auch gerne als UEFI Clients anlegen. Vorrausgesetzt man besitzt die dazu benötigte UEFI Erweiterung.

Für alles Mögliche gibt es einen opsi-admin Befehl. Ich haber allerdings keinerlei Möglichkeit gefunden den UEFI Haken über einen solchen Befehl zu setzen.
Aber man weis sich ja zu helfen. Vorsicht! Ich besitze die MySQL Erweiterung nicht. Ich weis nicht ob das unten geschriebene dann überhaupt noch gültig ist.
Die Information ob der Client ein UEFI Client sein soll, wird für jeden Client in einer seperaten Ini Datei gespeichert. Diese ist unter /var/lib/opsi/config/clients/<hostname>.<domäne>.ini
Dort kann man in der Sektion [generalconfig] den Eintrag clientconfig.dhcpd.filename mit dem Wert '["linux/pxelinux.cfg/elilo.efi"]' setzen. Ab jetzt ist der Client ein UEFI Client für den OPSI und wird auch bei der Installation so behandelt.
Entfernt man die Zeile wieder, so wird er wieder als normaler Legacy Client behandelt.

Automatisiert kann man das wunderschön mit dem Programm Crudini erledigen. Dieses muss aber zuerst noch auf dem OPSI Server installiert werden. Das kann ganz simpel über folgenden Befehl verwendet werden:

Code: Alles auswählen

apt install crudini
Hier nun noch mein Zweizeiler-Skript welches den gewünschten Client zum UEFI Client ändert:

Code: Alles auswählen

#!/bin/bash
if [ -e /var/lib/opsi/config/clients/$1.$2.ini ]; then crudini --set /var/lib/opsi/config/clients/$1.$2.ini generalconfig clientconfig.dhcpd.filename '["linux/pxelinux.cfg/elilo.efi"]'; fi
Das Skript habe ich unter /root/uefiSetzen.sh gespeichert und möchte im nachfolgenden Beispiel den Client "Test-PC01" für die Domäne "test.local" auf UEFI umstellen.
Das kann nun wie folgt aufgerufen werden:

Code: Alles auswählen

/root/uefiSetzen.sh "Test-PC01" "test.local"
Antworten