Das Problem
Falls ein Client die Installation beim Herunterfahren verwendet und dabei versucht opsi-client-agent zu installieren, dann schlägt das Aktualisieren der opsiclientd-Konfigurationsdatei fehl, weil diese Datei durch die für die Installation beim Herunterfahren zuständige Komponente (opsiclientd_shutdown_starter.exe) gesperrt ist.
Das führt dazu, dass die Konfigurationsdatei unvollständig ist. Dadurch ist die Verbindung zwischen Client und Server gestört, da eine Authentifizierung an der jeweiligen Gegenseite durch fehlende Zugangsdaten nicht möglich ist.
Andere Produkte sind davon nicht betroffen.
Die Lösungen
Wir stellen korrigierte Fassungen der Anwendungen bereit.
Außerdem verschiedene Lösungen im Umgang mit dem Problem.
Neue Version des opsi-client-agent
Ab sofort ist eine neue Version des opsi-client-agent im Testing-Bereich verfügbar.
Die Version ist 4.0.5.7.
Wir empfehlen diese Version auf allen Clients mit einer älteren Version
einzuspielen um mögliche zukünftige Probleme zu vermeiden.
Durch die Natur des Fehlers wird davon abgeraten diese Version beim
Herunterfahren zu Installieren!
Die Aktualisierung des opsi-client-agent wird einen Neustart des Clients
anfordern!
Opsi-Produkt opsiclientd-online-fix
Wir stellen eine Produkt mit dem Namen opsiclientd-online-fix bereit, welches nichts anderes machen wird als opsiclientd_shutdown_starter.exe
durch die korrigierte Fassung zu ersetzen.
Dies erfordert keinen Neustart des Clients.
Die Download-Links für dieses Produkt und die zugehörigen .md5- bzw. .zsync-Dateien sind wie folgt:
- http://download.uib.de/opsi4.0/testing/ ... 1.0-1.opsi
- http://download.uib.de/opsi4.0/testing/ ... 1.opsi.md5
- http://download.uib.de/opsi4.0/testing/ ... opsi.zsync
- 7c972b2c871d36aafe2cfe3b99dca17b opsiclientd-online-fix_1.0-1.opsi
- 257a3cb193c087987e67ec3af2415aad opsiclientd-online-fix_1.0-1.opsi.md5
- 49d9c198a3c4bd5827c0d008c0fde432 opsiclientd-online-fix_1.0-1.opsi.zsync
Von diesem Problem betroffene Clients sind nicht einfach zu entdecken.
Ein Indikator kann sein, dass die Clients nicht vom Server aus erreichbar sind.
Die Ursache dafür kann allerdings auch das Netzwerk-Setup sein oder dass
ein Client schlicht nicht angeschaltet ist.
Die einzig sichere Methode ist die Überprüfung der Datei C:\Programme (x86)\opsi.org\opsi-client-agent\opsiclientd\opsiclientd.conf auf das Vorhandensein von Werten für die Attribute host_id, opsi_host_key in der Sektion global sowie url in der Sektion config_service.
Unter http://download.uib.de/opsi4.0/find_cli ... problem.py finden Sie ein Script, welches auf Clients mit einer alten Version von opsi-client-agent prüft und auf welchen das Produkt-Property 'on_shutdown' gesetzt ist.
Es werden dabei Clients aussortiert, welche bereits opsiclientd-online-fix installiert haben.
Dieses Script wird auch Clients auflisten, welche momentan vom Server aus nicht erreichbar sind.
Dieses Script muss auf einem opsi-Server ausgeführt werden.
Es vereinfacht die Suche, ist aber keine endgültige Lösung.
Betroffene Clients retten
Betroffene Clients können nicht mehr mit dem opsi-Server kommunizieren.
Einen Client zu retten ist möglich indem die die Client ID, der Hostkey und die korrekte Config-Service-URL in C:\Programme (x86)\opsi.org\opsi-client-agent\opsiclientd\opsiclientd.conf wieder eingetragen werden.
Es gibt viele Möglichkeiten zur Rettung, die Umsetzung hängt jedoch von den lokalen Gegebenheiten ab.
Nachfolgend finden Sie zwei mögliche Beispiele.
Gerne unterstützen wir unsere Kunden mit individuellen Lösungen.
opsi-deploy-client-agent
Falls Sie in der Vergangenheit schon opsi-deploy-client-agent verwendet haben,
kann dieses Script dazu verwendet werden den opsi-client-agent neu auf die
Clients zu bringen.
Bitte lesen Sie im Getting Started zur Verwendung: http://download.uib.de/opsi_stable/doc/ ... ntegration
Beispielhafte Verwendung des bereitgestellten python-scriptes:
Code: Alles auswählen
python find_clients_affected_by_on_shutdown_problem.py > clientliste.txt
Bevor Sie das machen empfehlen wir an mit einigen Clients zu testen, ob es wie
gewünscht bei Ihnen funktioniert. Weitere Optionen entnehmen Sie bitte
dem Dokument "Getting Started" im Kapitel "Integration vorhandener
Windows-Clients in opsi".
Code: Alles auswählen
cd /var/lib/opsi/depot/opsi-client-agent
# ./opsi-deploy-client-agent -x --username=<windowsdomain\adminuser> -p "password" --keep-client-on-failure
--hosts-from-file /pfad/zu/clientliste.txt
Es ist immer eine manuelle Rettung möglich.
Um den Hostkey eines Clients zu erfahren kann opsi-admin verwendet werden.
Der folgende Befehl wird den Hostkey des Clients mit der ID "yourClient.domain.local" anzeigen:
Code: Alles auswählen
opsi-admin -dS method getOpsiHostKey yourClient.domain.local
Dann muss der Hostkey als Wert für "opsi_host_key" und die Client ID als Wert für "host_id" in der Datei C:\Programme (x86)\opsi.org\opsi-client-agent\opsiclientd\opsiclientd.conf eingetragen werden. Außerdem muss in der Sektion config_service die richtige Server-Adresse stehen.
Anschließend kann der Dienst "opsiclientd" wieder gestartet werden.