opsiconfd-Absturz nach Netboot-Änderung

Antworten
phorms
Beiträge: 4
Registriert: 17 Nov 2015, 10:45

opsiconfd-Absturz nach Netboot-Änderung

Beitrag von phorms »

Hallo,

in unserer OPSI-Umgebung haben wir das Problem, dass jede Netboot-Produkte-Änderung zum Absturz des Dienstes "opsiconfd" führt, wenn über "configed" des Depotservers ein Client auf dem gleichen Depot verändert wird. Auf anderen Depotservern kann man problemlos Änderungen vornehmen. Ob es eine Fehlkonfiguration oder ein Bug ist, können hoffentlich die Experten klären.

Kurz zu unserer OPSI-Umgebung:
- 9 Depotserver auf Ubuntu 14.04, opsiconfd version 4.0.6.10, opsi-depotserver 4.0.6.4-1
- Masterserver auf Ubuntu 12.04, opsiconfd version 4.0.6.10, opsi-depotserver 4.0.6.4-1
- MySQL Modul erworben
- überall die Standard-Ports
- Jeder Server hat sein eigens IP-Netz, welche über VPN-Tunnel mit dem Masterserver verbunden sind
- Alles wurde nach Handbuch installiert
- Auf dem Depotservern gibt es OPSI-Administratoren, welche auf dem Masterserver keinen Account besitzen (zwecks Fehlersuche Duplikat mit identischen Daten auf dem Master erstellt)

Fehlerauslösung:
- Nutzung eines Depotservers mit "java web start" oder "java applet"
- Ändern von "Angefordert" eines beliebigen Netboot-Produktes (setup oder none)
- Speichern
- Depotserver nicht mehr nutzbar

Fehlersuche:
Der Dienst "opsiconfd" stürzt nicht wirklich ab, der Dienst läuft und der Port bleibt geöffnet, aber es sind keine Verbindungen mehr zu "configed" möglich. Der Browser bekommt ein Timeout. Aufgrund der Log-Dateien vermute ich eine Endlosschleife beim Warten auf eine Antwort.

Die Änderung, welche zum Absturz führt, wird im Backend erfolgreich gespeichert. Der Client bekommt aber keine Verbindung mehr zu "opsiconfd" und wartet endlos. Der Dienst muss dann neugestartet werden oder sogar der ganze Server, da manchmal trotz laufendem Dienst kein Port 4447 in Benutzung ist.

Vom Masterserver aus kann man jedes Depot erfolgreich bearbeiten. Jeder Depotserver kann andere Depots bearbeiten. Das Problem tritt nur auf, wenn von einem Depotserver die eigenen Clients bearbeitet werden.

In den Logs sieht man, dass der Depotserver A vom Masterserver keine Antwort erhält, wenn Clients von Depotserver A betroffen sind.
Ändert der Depotserver A einen Client von Depotserver B, dann erhält er eine Antwort vom Masterserver. In der Logs sieht man auch die unterschiedliche Backend-Abarbeitung. Ist eventuell das Backend falsch einstellt?

dispatch.conf Master:

Code: Alles auswählen

backend_.*         : mysql, opsipxeconfd
host_.*            : mysql, opsipxeconfd
productOnClient_.* : mysql, opsipxeconfd
configState_.*     : mysql, opsipxeconfd
.*                 : mysql
dispatch.conf Depots

Code: Alles auswählen

backend_.* : jsonrpc, opsipxeconfd
.*         : jsonrpc
Über Hinweise würde ich mich freuen. Für Rückfragen stehe ich gerne zur Verfügung.


Log:
Eigenes Depot: A ; fremdes Depot: B

Log vom Depot A mit erfolgreicher Änderung in Depot B:

Code: Alles auswählen

[7] [Nov 18 14:22:48] Got productOnClients (Backend.py|3122)
[6] [Nov 18 14:22:48] ProductOnClient <ProductOnClient(clientId=u'CLIENT_DEPOT_B', productId=u'win7-x64', installationStatus=None, actionRequest=u'none')> exist, updating (Backend.py|3290)
[7] [Nov 18 14:22:48] Dispatching method 'productOnClient_getObjects' to backends: [u'jsonrpc'] (BackendManager.py|414)
[7] [Nov 18 14:22:48] Dispatching method 'productOnClient_insertObject' to backends: [u'jsonrpc'] (BackendManager.py|414)
[6] [Nov 18 14:22:48] Got result (JsonRpc.py|136)
[8] [Nov 18 14:22:48] RPC ID 1: [] (JsonRpc.py|137)
Log vom Masterserver zur erfolgreichen Änderung in Depot B:

Code: Alles auswählen

[5] [Nov 18 14:22:44] -----> Executing: productOnClient_insertObject(<ProductOnClient(clientId=u'CLIENT_DEPOT_B', productId=u'win7-x64', installationStatus=u'installed', actionRequest=u'none')>) (JsonRpc.py|128)
[7] [Nov 18 14:22:44] ExtendedBackend <BackendManager(name=None)>: executing 'productOnClient_insertObject' on backend '<BackendExtender(name=None)>' (Backend.py|478)
[7] [Nov 18 14:22:44] ExtendedBackend <BackendExtender(name=None)>: executing 'productOnClient_insertObject' on backend '<OPSI.Backend.BackendManager.BackendAccessControl object at 0x7fea7fc28190>' (Backend.py|478)
[7] [Nov 18 14:22:44] Access control for method 'productOnClient_insertObject' params {'productOnClient': <ProductOnClient(clientId=u'CLIENT_DEPOT_B', productId=u'win7-x64', installationStatus=u'installed', actionRequest=u'none')>} (BackendManager.py|817)
[7] [Nov 18 14:22:44] Found matching acl [{'denyAttributes': [], 'type': u'sys_group', 'ids': [u'opsiadmin'], 'allowAttributes': []}, {'denyAttributes': [], 'type': u'opsi_depotserver', 'ids': [], 'allowAttributes': []}, {'denyAttributes': [], 'type': u'self', 'ids': [], 'allowAttributes': []}] for method 'productOnClient_insertObject' (BackendManager.py|822)
[7] [Nov 18 14:22:44] Method: productOnClient_insertObject, using acls: [{'denyAttributes': [], 'type': u'opsi_depotserver', 'ids': [], 'allowAttributes': []}] (BackendManager.py|857)
[7] [Nov 18 14:22:44] Full access to method 'productOnClient_insertObject' granted to user 'DEPOT_A' by acl {'denyAttributes': [], 'type': u'opsi_depotserver', 'ids': [], 'allowAttributes': []} (BackendManager.py|859)
[7] [Nov 18 14:22:44] newKwargs: {'productOnClient': <ProductOnClient(clientId=u'CLIENT_DEPOT_B', productId=u'win7-x64', installationStatus=u'installed', actionRequest=u'none')>} (BackendManager.py|874)
[7] [Nov 18 14:22:44] ExtendedBackend <HostControlSafeBackend(name=None)>: executing 'productOnClient_insertObject' on backend '<HostControlBackend(name=None)>' (Backend.py|478)
[6] [Nov 18 14:22:44] Got result (JsonRpc.py|136)
Log vom Depot A mit Absturz-Änderung in Depot A:

Code: Alles auswählen

[7] [Nov 18 14:26:10] Got productOnClients (Backend.py|3122)
[6] [Nov 18 14:26:10] ProductOnClient <ProductOnClient(clientId=u'CLIENT_DEPOT_A', productId=u'win7-x64', installationStatus=None, actionRequest=u'setup')> exist, updating (Backend.py|3290)
[7] [Nov 18 14:26:10] Dispatching method 'productOnClient_getObjects' to backends: [u'jsonrpc'] (BackendManager.py|414)
[7] [Nov 18 14:26:10] Dispatching method 'productOnClient_insertObject' to backends: [u'jsonrpc'] (BackendManager.py|414)
Log vom Masterserver zur Absturz-Änderung in Depot A:

Code: Alles auswählen

[5] [Nov 18 14:26:07] -----> Executing: productOnClient_insertObject(<ProductOnClient(clientId=u'CLIENT_DEPOT_A', productId=u'win7-x64', installationStatus=u'installed', actionRequest=u'setup')>) (JsonRpc.py|128)
[7] [Nov 18 14:26:07] ExtendedBackend <BackendManager(name=None)>: executing 'productOnClient_insertObject' on backend '<BackendExtender(name=None)>' (Backend.py|478)
[7] [Nov 18 14:26:07] ExtendedBackend <BackendExtender(name=None)>: executing 'productOnClient_insertObject' on backend '<OPSI.Backend.BackendManager.BackendAccessControl object at 0x7fea7f8fd250>' (Backend.py|478)
[7] [Nov 18 14:26:07] Access control for method 'productOnClient_insertObject' params {'productOnClient': <ProductOnClient(clientId=u'CLIENT_DEPOT_A', productId=u'win7-x64', installationStatus=u'installed', actionRequest=u'setup')>} (BackendManager.py|817)
[7] [Nov 18 14:26:07] Found matching acl [{'denyAttributes': [], 'type': u'sys_group', 'ids': [u'opsiadmin'], 'allowAttributes': []}, {'denyAttributes': [], 'type': u'opsi_depotserver', 'ids': [], 'allowAttributes': []}, {'denyAttributes': [], 'type': u'self', 'ids': [], 'allowAttributes': []}] for method 'productOnClient_insertObject' (BackendManager.py|822)
[7] [Nov 18 14:26:07] Method: productOnClient_insertObject, using acls: [{'denyAttributes': [], 'type': u'opsi_depotserver', 'ids': [], 'allowAttributes': []}] (BackendManager.py|857)
[7] [Nov 18 14:26:07] Full access to method 'productOnClient_insertObject' granted to user 'DEPOT_A' by acl {'denyAttributes': [], 'type': u'opsi_depotserver', 'ids': [], 'allowAttributes': []} (BackendManager.py|859)
[7] [Nov 18 14:26:07] newKwargs: {'productOnClient': <ProductOnClient(clientId=u'CLIENT_DEPOT_A', productId=u'win7-x64', installationStatus=u'installed', actionRequest=u'setup')>} (BackendManager.py|874)
[7] [Nov 18 14:26:07] ExtendedBackend <HostControlSafeBackend(name=None)>: executing 'productOnClient_insertObject' on backend '<HostControlBackend(name=None)>' (Backend.py|478)
[7] [Nov 18 14:26:07] ExtendedBackend <HostControlBackend(name=None)>: executing 'productOnClient_insertObject' on backend '<DepotserverBackend(name=None)>' (Backend.py|478)
[7] [Nov 18 14:26:07] ExtendedBackend <DepotserverBackend(name=None)>: executing 'productOnClient_insertObject' on backend '<ExtendedConfigDataBackend(configDataBackend=<BackendDispatcher(name=None)>)>' (Backend.py|478)
[7] [Nov 18 14:26:07] Dispatching method 'productOnClient_getObjects' to backends: [u'mysql', u'opsipxeconfd'] (BackendManager.py|414)
[6] [Nov 18 14:26:07] Getting productOnClients, filter: {'clientId': u'CLIENT_DEPOT_A', 'productId': u'win7-x64'} (SQL.py|1514)
[7] [Nov 18 14:26:07] Created query: 'select * from `PRODUCT_ON_CLIENT` where (`clientId` = 'CLIENT_DEPOT_A') and (`productId` = 'win7-x64')' (SQL.py|284)
[6] [Nov 18 14:26:07] Updating productOnClient <ProductOnClient(clientId=u'CLIENT_DEPOT_A', productId=u'win7-x64', installationStatus=u'installed', actionRequest=u'none')> instead of creating a new one (Backend.py|3215)
[7] [Nov 18 14:26:07] Dispatching method 'productOnClient_insertObject' to backends: [u'mysql', u'opsipxeconfd'] (BackendManager.py|414)
[7] [Nov 18 14:26:07] Dispatching method 'configState_getObjects' to backends: [u'mysql', u'opsipxeconfd'] (BackendManager.py|414)
[6] [Nov 18 14:26:07] Getting configStates, filter: {'configId': u'clientconfig.depot.id', 'objectId': u'CLIENT_DEPOT_A'} (SQL.py|1193)
[7] [Nov 18 14:26:07] Created query: 'select * from `CONFIG_STATE` where (`configId` = 'clientconfig.depot.id') and (`objectId` = 'CLIENT_DEPOT_A')' (SQL.py|284)
[6] [Nov 18 14:26:07] Not responsible for client 'CLIENT_DEPOT_A', forwarding request to depot 'DEPOT_A' (OpsiPXEConfd.py|148)
[7] [Nov 18 14:26:07] Dispatching method 'host_getObjects' to backends: [u'mysql', u'opsipxeconfd'] (BackendManager.py|414)
[6] [Nov 18 14:26:07] Getting hosts, filter: {'id': u'MASTERSERVER'} (SQL.py|1023)
[7] [Nov 18 14:26:07] Created query: 'select * from `HOST` where (`hostId` = 'MASTERSERVER')' (SQL.py|284)
phorms
Beiträge: 4
Registriert: 17 Nov 2015, 10:45

opsiconfd-Absturz nach Netboot-Änderung

Beitrag von phorms »

bump
Benutzeravatar
wolfbardo
uib-Team
Beiträge: 1411
Registriert: 01 Jul 2008, 12:10

Re: opsiconfd-Absturz nach Netboot-Änderung

Beitrag von wolfbardo »

  • - dpkg -l | grep opsi prüfen
    - Namensauflösung der Server vorwärts/rückwärts prüfen
    - Supportvertrag prüfen
Gruss
Bardo Wolf


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


s.ehrenfeld
Beiträge: 11
Registriert: 21 Aug 2015, 09:28

Re: opsiconfd-Absturz nach Netboot-Änderung

Beitrag von s.ehrenfeld »

Hallo,

wir haben genau das selbe Problem nach dem Update auf Version 4.0.7. Alles Depot-Server haben den selben Stand.

Gruß

Sebastian
Benutzeravatar
ueluekmen
uib-Team
Beiträge: 1940
Registriert: 28 Mai 2008, 10:53

Re: opsiconfd-Absturz nach Netboot-Änderung

Beitrag von ueluekmen »

Hi,

verstehe ich das richtig, dass du dich auf den Depotserver mit dem configed verbindest und dann versuchst etwas darauf zu ändern? Das ist so nicht vorgesehen. Die Multidepotumgebung geht davon aus, dass alles vom Zentralen Configserver aus gemacht werden muss und das der die Infos an die Depots weiterleiten soll. Genausowenig kannst du aus einem laufenden Bootimage dich mit dem Depotserver direkt verbinden, du musst immer über den configserver gehen. Alle anderen Wege werden von uns nicht geprüft, da du ansonsten gefahr läufsft in einem Communication-Loop zu Enden.

Wenn es beim normalen Betrieb der Multidepot-Umgebung zu Problemen kommt, hilft auch meistens ein neu-Registrieren der Depotserver am Configserver.


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


Antworten