Problem nach Update opsi-boot-image
Re: Problem nach Update opsi-boot-image
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.
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.
_________________________
opsi support - http://www.uib.de/
For productive opsi installations we recommend support contracts.
Re: Problem nach Update opsi-boot-image
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:
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:
Beim PXE-Boot des Clients zeigten sich dann unter /var/lib/dhcp zwei Files:
- dhclient.eth0.leases
- dhclient.leases
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
Re: Problem nach Update opsi-boot-image
Ist es denn ein efi client, der gebootet wird?
Wenn j, was für Dateien liegen in /sys/firmware/efi ?
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.
_________________________
opsi support - http://www.uib.de/
For productive opsi installations we recommend support contracts.
Re: Problem nach Update opsi-boot-image
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:
...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.
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)
Die dhclient.eth0.leases existierte diesmal nicht und die dhclient.leases hatte (diesmal) den erwarteten Inhalt.
Der EFI-Fehler besteht allerdings noch.
Re: Problem nach Update opsi-boot-image
wenn es kein EFI Client ist dann ist der efivars Fehler irrelevant
an welcher Stelle tritt dieser Fehler denn auf?
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.
_________________________
opsi support - http://www.uib.de/
For productive opsi installations we recommend support contracts.
Re: Problem nach Update opsi-boot-image
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:
Der ist in aktuelleren Versionen des uib-Pakets wie es aussieht zu:
geworden. - Der alte Code scheint auf dem ersten Blick also den Fehler zu produzieren.
Das Log-File sieht das so:
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")
Code: Alles auswählen
inUefi = inUefiMode()
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)
Re: Problem nach Update opsi-boot-image
Naechster Versuch mit *opsi-clonzilla*:
Der bekannte Fehler mit der Netzwerkkonfiguration tritt wieder auf.
Blick in /var/lib/dhcp:
Der Code in der master.py, der dhclient.eth0.leases parsen soll, wird wohl erreicht, bevor das File existiert.
Der bekannte Fehler mit der Netzwerkkonfiguration tritt wieder auf.
Blick in /var/lib/dhcp:
- dhclient.eth0.leases
- dhclient.leases
Der Code in der master.py, der dhclient.eth0.leases parsen soll, wird wohl erreicht, bevor das File existiert.
Re: Problem nach Update opsi-boot-image
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
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.
_________________________
opsi support - http://www.uib.de/
For productive opsi installations we recommend support contracts.
Re: Problem nach Update opsi-boot-image
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.
Re: Problem nach Update opsi-boot-image
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.
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.