opsi-client-agent: Problem bei Aktualisierung durch on_shutdown-Installation

Neuigkeiten und Ankündigungen
Antworten
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

opsi-client-agent: Problem bei Aktualisierung durch on_shutdown-Installation

Beitrag von n.wenselowski »

Wir wurden auf ein Problem im Verhalten des opsi-client-agent bei on-shutdown-Installationen aufmerksam gemacht, welches dazu führt dass der Client seine lokal gespeicherte Client-ID und seinen Hostkey vergisst.

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: Die md5-Summen der Dateien sind:
  • 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
Betroffene Clients finden
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
Die erzeugte Datei kann man dann dem opsi-deploy-client-agent-Skript übergeben.

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
Manuelles Anpassen der Konfigurationsdatei auf dem Client
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
Vor der manuellen Anpassung der Konfigurationsdatei stoppen Sie zuerst den Dienst "opsiclientd" auf dem Client.
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.

Code: Alles auswählen

import OPSI
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: opsi-client-agent: Problem bei Aktualisierung durch on_shutdown-Installation

Beitrag von n.wenselowski »

Post aktualisiert.

Code: Alles auswählen

import OPSI
Benutzeravatar
n.wenselowski
Ex-uib-Team
Beiträge: 3194
Registriert: 04 Apr 2013, 12:15

Re: opsi-client-agent: Problem bei Aktualisierung durch on_shutdown-Installation

Beitrag von n.wenselowski »

Post aktualisiert: auch auf das Attribut url in der Sektion config_service achten.

Code: Alles auswählen

import OPSI
d.meier
Beiträge: 18
Registriert: 13 Sep 2012, 13:19

Re: opsi-client-agent: Problem bei Aktualisierung durch on_shutdown-Installation

Beitrag von d.meier »

Das ist wohl die Lösung zu meinem Posting: viewtopic.php?f=7&t=7647&p=32861

Gruss
Dominik
Benutzeravatar
wolfbardo
uib-Team
Beiträge: 1354
Registriert: 01 Jul 2008, 12:10

Re: opsi-client-agent: Problem bei Aktualisierung durch on_shutdown-Installation

Beitrag von wolfbardo »

Aktualisierte und 2-Mal editierte Version vom22.9.2015

Wir wurden auf ein Problem im Verhalten des opsi-client-agent bei on-shutdown-Installationen aufmerksam gemacht, welches dazu führt dass der Client seine lokal gespeicherte Client-ID und seinen Hostkey vergisst.

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 Stable-Bereich verfügbar.
Die Version ist 4.0.5.8-3.
Wir empfehlen diese Version auf allen Clients mit einer älteren Version
einzuspielen um mögliche zukünftige Probleme zu vermeiden.
Mit dieser Version wird der opsiclientd-online-fix nicht benötigt !

Opsi-Produkt opsiclientd-online-fix
Als Alternative stellen wir ein Produkt mit dem Namen opsiclientd-online-fix bereit, welches nichts anderes macht als die 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: Die md5-Summen der Dateien sind:
  • 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
Betroffene Clients finden
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
Die erzeugte Datei kann man dann dem opsi-deploy-client-agent-Skript übergeben.

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
Manuelles Anpassen der Konfigurationsdatei auf dem Client
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
Vor der manuellen Anpassung der Konfigurationsdatei stoppen Sie zuerst den Dienst "opsiclientd" auf dem Client.
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.

Gruss
Bardo Wolf


OPSICONF 2024
https://opsi.org/en/opsiconf/

Basisworkshop Mainz :

17. - 20. 06. 2024


opsi support - uib gmbh
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.

http://www.uib.de
Antworten