Problem nach Update opsi-boot-image

Benutzeravatar
m.radtke
uib-Team
Beiträge: 1547
Registriert: 10 Jun 2015, 12:19

Re: Problem nach Update opsi-boot-image

Beitrag von m.radtke »

Ist denn die dhclient.leases Datei mit Daten gefüllt.

Dein problem aktuell ist das die funktion getDHCPResult(device) fehlschlägt.
Diese Funktion benutzt ebenfalls nur die dhclient.leases und parst Sie nach den entsprechenden Parametern.

Zudem führt der Block master.py:684-703 bei Dir zu keiner Änderung.
Hier wird nur geschaut ob eine Netzwerkkarte einen Link zu einem Opsi DHCP hat, wenn ja werden im weiteren verlauf nur diese Netzwerkkarten benutzt. Ansonsten werden alle Netzwerkkarten verwendet.
Kein Support per DM!
_________________________
opsi support - http://www.uib.de/
For productive opsi installations we recommend support contracts.
Benutzeravatar
jub
Beiträge: 64
Registriert: 25 Nov 2010, 12:40

Re: Problem nach Update opsi-boot-image

Beitrag von jub »

Ich habe meine miniroot.bz2 jetzt einmal entsprechend gepatcht. Das fuehrt zumindest schon mal dazu, dass nicht der DHCP-Server nach dem opsiconfd befragt wird, was wiederum diesen Fehler beseitigt.

Beim PXE-Boot des Clients zeigten sich dann unter /var/lib/dhcp zwei Files:
  • dhclient.eth0.leases
  • dhclient.leases
Das letztere File war leer.
Nachdem die dhclient.eth0.leases kurzerhand ueber die dhclient.leases kopiert und master.py neu gestartet wurde, geht es zunaechst weiter.

Es folgte nun jedoch ein weiterer Fehler:

Code: Alles auswählen

Command '/sbin/modprobe efivars' failed (1):
modprobe: ERROR: could not insert 'efivars': No such device
Benutzeravatar
m.radtke
uib-Team
Beiträge: 1547
Registriert: 10 Jun 2015, 12:19

Re: Problem nach Update opsi-boot-image

Beitrag von m.radtke »

Ist es denn ein efi client, der gebootet wird?

Wenn j, was für Dateien liegen in /sys/firmware/efi ?
Kein Support per DM!
_________________________
opsi support - http://www.uib.de/
For productive opsi installations we recommend support contracts.
Benutzeravatar
jub
Beiträge: 64
Registriert: 25 Nov 2010, 12:40

Re: Problem nach Update opsi-boot-image

Beitrag von jub »

Nein, es handelt sich eigentlich nicht um einen EFI-Client. Entsprechend existiert /sys/firmware/efi auch gar nicht.

Ich habe fuer den Test die master.py nochmal ganz quick'n'dirty erweitert.
Diff:

Code: Alles auswählen

696,711d695
< 	
< 	for device in ethernetDevices:
< 		if  os.path.isfile('/var/lib/dhcp/dhclient.'+device+'.leases'):
< 			with open('/var/lib/dhcp/dhclient.'+device+'.leases') as f:
< 				for line in f:
< 					line = line.strip()
< 					if line.startswith('interface'):
< 						unused,interface = line.split(None, 1)
< 						interface = interface[:-1]
< 					elif line.startswith('option dhcp-server-identifier'):
< 						unused,unused,address = line.split(None, 2)
< 						address = address[:-1]
< 					if interface and address:
< 						interfaceAddress[interface.replace('"', '')] = address
< 						interface = address = None		
< 	
715,716c699
< 			# response = requests.get('https://%s:4447' % address, verify = False)
< 			response  = requests.get(re.sub('/rpc$','',nextserver), verify = False)
---
> 			response = requests.get('https://%s:4447' % address, verify = False)

...wieder die miniroot.bz2 zusammengepackt, per PXE gebootet und:
Die dhclient.eth0.leases existierte diesmal nicht und die dhclient.leases hatte (diesmal) den erwarteten Inhalt.
Der EFI-Fehler besteht allerdings noch.
Benutzeravatar
m.radtke
uib-Team
Beiträge: 1547
Registriert: 10 Jun 2015, 12:19

Re: Problem nach Update opsi-boot-image

Beitrag von m.radtke »

wenn es kein EFI Client ist dann ist der efivars Fehler irrelevant

an welcher Stelle tritt dieser Fehler denn auf?
Kein Support per DM!
_________________________
opsi support - http://www.uib.de/
For productive opsi installations we recommend support contracts.
Benutzeravatar
jub
Beiträge: 64
Registriert: 25 Nov 2010, 12:40

Re: Problem nach Update opsi-boot-image

Beitrag von jub »

Okay, ich fuerchte, hier muss ich noch ein paar Hausaufgaben machen.
Ich hatte aus einem - inzwischen offenbar veralteten - win7-Paket von uib ein eigenens win7-x64-mpimsp-image abgeleitet und erweitert.
Am Anfang der setup.py gibt es noch den Code:

Code: Alles auswählen

# use 'os.system' to do not break on exitcode != 0
useGptOnUefi = False
logger.notice(u"try to load efivars module: modprobe efivars")
execute('/sbin/modprobe efivars')
logger.notice(u"check if we run in uefi mode")
# use 'os.system' to do not break on exitcode != 0
efiexitcode = os.system("efibootmgr >> /dev/null 2>&1")
if (0 == int(efiexitcode)):
	useGptOnUefi = True
	logger.notice(u"we are running in uefi mode")
	scriptMessageSubject.setMessage(u"we are running in uefi mode")
else:
	logger.notice(u"we are not running in uefi mode")
Der ist in aktuelleren Versionen des uib-Pakets wie es aussieht zu:

Code: Alles auswählen

inUefi = inUefiMode()
geworden. - Der alte Code scheint auf dem ersten Blick also den Fehler zu produzieren.

Das Log-File sieht das so:

Code: Alles auswählen

[6] [Okt 29 13:39:07] Copying from 'win7-x64-mpimsp-image/setup.py' to '/tmp/setup.py' (Repository.py|503)
[7] [Okt 29 13:39:07] Length of binary data to download: 33454 bytes (Repository.py|721)
[7] [Okt 29 13:39:07] Transfer in from <open file u'/mnt/opsi/install/win7-x64-mpimsp-image/setup.py', mode 'rb' at 0xb62d4230> to <open file u'/tmp/setup
.py', mode 'wb' at 0xb62d4650>, dynamic bandwidth False, max bandwidth 0 (Repository.py|355)
[7] [Okt 29 13:39:07] Filesize is: 33454 (Repository.py|366)
[6] [Okt 29 13:39:07] Transfered 32.67 kByte in 0.00 minutes, average speed was 4642.01 kByte/s (Repository.py|406)
[6] [Okt 29 13:39:07] Copy done (Repository.py|587)
[7] [Okt 29 13:39:07] MessageSubject 'script' created (Message.py|103)
[7] [Okt 29 13:39:07] Executing jsonrpc method 'productOnClient_updateObjects' on host 10.26.1.5 (JSONRPC.py|115)
[7] [Okt 29 13:39:07] Starting new HTTPS connection (0) to 10.26.1.5:4447 (HTTP.py|604)
[7] [Okt 29 13:39:07] Connection established to: 10.26.1.5 (HTTP.py|617)
[7] [Okt 29 13:39:07] Failed to get peer cert: 'NoneType' object has no attribute 'getpeercert' (HTTP.py|188)
[7] [Okt 29 13:39:07] Closing connection: <httplib.HTTPSConnection instance at 0xb62e244c> (HTTP.py|531)
[7] [Okt 29 13:39:07] Content-Type: gzip-application/json;charset=utf-8, Content-Encoding: gzip (JSONRPC.py|719)
[7] [Okt 29 13:39:07] Expecting deflated data from server (backwards compatible) (JSONRPC.py|727)
[5] [Okt 29 13:39:07] try to load efivars module: modprobe efivars (setup.py|14)
[6] [Okt 29 13:39:07] Executing: /sbin/modprobe efivars (Posix.py|759)
[6] [Okt 29 13:39:07] Using encoding 'UTF-8' (Posix.py|792)
[7] [Okt 29 13:39:07] >>> modprobe: ERROR: could not insert 'efivars': No such device (Posix.py|836)
[7] [Okt 29 13:39:07] Exit code: 1 (Posix.py|843)
[2] [Okt 29 13:39:08] Traceback: (Logger.py|758)
[2] [Okt 29 13:39:08]      line 1524 in '<module>' in file '/usr/local/bin/master.py' (Logger.py|758)
[2] [Okt 29 13:39:08]      line 15 in '<module>' in file '/tmp/setup.py' (Logger.py|758)
[2] [Okt 29 13:39:08]      line 850 in 'execute' in file '/usr/lib/python2.7/dist-packages/OPSI/System/Posix.py' (Logger.py|758)
[2] [Okt 29 13:39:08]      ==>>> Command '/sbin/modprobe efivars' failed (1):
modprobe: ERROR: could not insert 'efivars': No such device (master.py|1572)
[7] [Okt 29 13:39:08] Backend: <JSONRPCBackend(address=None, host=u'10.26.1.5', deflate=False)> (master.py|1575)
[7] [Okt 29 13:39:08] ProductId: win7-x64-mpimsp-image (master.py|1576)
[7] [Okt 29 13:39:08] ClientId: celle.mpi-halle.mpg.de (master.py|1577)
[7] [Okt 29 13:39:08] ProductOnClient: <ProductOnClient(clientId=u'celle.mpi-halle.mpg.de', productId=u'win7-x64-mpimsp-image', installationStatus=u'unknown', actionRequest=u'none')> (master.py|1578)
[6] [Okt 29 13:39:08] Updating productOnClient: {'actionProgress': u'', 'actionResult': u'failed', 'clientId': u'celle.mpi-halle.mpg.de', 'modificationTime': None, 'actionRequest': u'none', 'targetConfiguration': None, 'productVersion': None, 'productType': u'NetbootProduct', 'type': u'ProductOnClient', 'lastAction': None, 'packageVersion': None, 'actionSequence': None, 'installationStatus': u'unknown', 'productId': u'win7-x64-mpimsp-image'} (master.py|1589)
[7] [Okt 29 13:39:08] Executing jsonrpc method 'productOnClient_updateObjects' on host 10.26.1.5 (JSONRPC.py|115)
[7] [Okt 29 13:39:08] Starting new HTTPS connection (0) to 10.26.1.5:4447 (HTTP.py|604)
[7] [Okt 29 13:39:08] Connection established to: 10.26.1.5 (HTTP.py|617)
[7] [Okt 29 13:39:08] Failed to get peer cert: 'NoneType' object has no attribute 'getpeercert' (HTTP.py|188)
[7] [Okt 29 13:39:09] Closing connection: <httplib.HTTPSConnection instance at 0xb62e26ec> (HTTP.py|531)
[7] [Okt 29 13:39:09] Content-Type: gzip-application/json;charset=utf-8, Content-Encoding: gzip (JSONRPC.py|719)
[7] [Okt 29 13:39:09] Expecting deflated data from server (backwards compatible) (JSONRPC.py|727)
[5] [Okt 29 13:39:09] Writing log to service (master.py|1599)
Benutzeravatar
jub
Beiträge: 64
Registriert: 25 Nov 2010, 12:40

Re: Problem nach Update opsi-boot-image

Beitrag von jub »

Naechster Versuch mit *opsi-clonzilla*:
Der bekannte Fehler mit der Netzwerkkonfiguration tritt wieder auf.

Blick in /var/lib/dhcp:
  • dhclient.eth0.leases
  • dhclient.leases
Das letztere File war wieder leer.
Der Code in der master.py, der dhclient.eth0.leases parsen soll, wird wohl erreicht, bevor das File existiert.
Benutzeravatar
m.radtke
uib-Team
Beiträge: 1547
Registriert: 10 Jun 2015, 12:19

Re: Problem nach Update opsi-boot-image

Beitrag von m.radtke »

Ich bin bereits dran eine möglichst elegante Lösung für das dhclient.leases Problem zu implementieren.
Gebe bescheid sobald es was neues und greifbares gibt
Kein Support per DM!
_________________________
opsi support - http://www.uib.de/
For productive opsi installations we recommend support contracts.
TheChosen
Beiträge: 49
Registriert: 15 Jun 2010, 10:35

Re: Problem nach Update opsi-boot-image

Beitrag von TheChosen »

Gibt es die Möglichkeit das Timeout beim warten auf die Netzwerkgeräte zu erhöhen? Wir haben eine Radius-Port-Security und die Aushandlung der Geschwindigkeit und das aktivieren des Ports dauert anscheinend länger als das Timeout.
Benutzeravatar
jub
Beiträge: 64
Registriert: 25 Nov 2010, 12:40

Re: Problem nach Update opsi-boot-image

Beitrag von jub »

Ich hatte in der master.py die Zeit von 2 auf 3 Sekunden (time.sleep(3)) und die Anzahl der Loops von 15 auf 20 erhoeht.
Damit erhoeht sich die Zeit von 30 auf 60 Sekunden, bzw. mit dem ifdown/ifup auf 120 Sekunden.
Das Problem loest das aber auch noch nicht.
Antworten