[GELÖST] opsi-makeproductfile via cmd in winst auslösen !?
Verfasst: 29 Okt 2013, 08:59
Guten Morgen zusammen,
ich arbeite an einem Paket, welches die Treiberintegration von OPSI Client-Modell-Spezifisch automatisiert und die entsprechenden netboot-Produkte automatisch aktualisiert und für alle Depots bereitstellt.
Die Basis dazu ist das automatisierte Ausführen von DoubleDriver auf einem Client, dem verschieben der so ausgelesenen Treiber auf Basis des OS in einen durch den Client erstelltes Verzeichnis auf dem OPSI Config Server (/home/opsiproduct/$ProductId$/CLIENT_DATA/driver/drivers/additional/byAudit/$Hersteller$/$Modell$) nach dem Schema des byAudit verfahren.
Anschließend wird über ein CMD-Aufruf eine Putty Konsole via ssh-key aufgerufen und eine Befehlsdatei übergeben um das Netboot-Produkt zu löschen -> neu zu packen -> auf alle Depots hochzuladen.
Letzteres funktioniert nicht, da die Textdatei die übergeben wird wohl nicht UTF8-Codiert ist. Ändere ich das vorgehen und übergebe eine UTF8-Codierte datei, kennt die SSH die Befehle nicht mehr.... :/
Ich bin nicht so fit das ich gerade weis wie ich die Codierung on the fly umsetze. Auch das erstellen eines Shell Scripts auf dem Server und dem "nur noch" dortigen Ausführen durch Putty änder nichts daran, da der Befehl den ich übergebe "nie" UTF8 ist und das vermeindlich das Problem verursacht. Sofern ich die Fehlermeldung richtig verstehe.
Die entsprechenden Script-Sections:
Ich habe auch schon die Übergabe der Befehle in abgewandelter Form versucht:
Fehlerlog des makeproductfile Befehls bei Übergabe durch eine ASCII Textdatei:
Fehlerlog des makeproductfile Befehls bei Übergabe durch eine UTF8 Textdatei:
ich arbeite an einem Paket, welches die Treiberintegration von OPSI Client-Modell-Spezifisch automatisiert und die entsprechenden netboot-Produkte automatisch aktualisiert und für alle Depots bereitstellt.
Die Basis dazu ist das automatisierte Ausführen von DoubleDriver auf einem Client, dem verschieben der so ausgelesenen Treiber auf Basis des OS in einen durch den Client erstelltes Verzeichnis auf dem OPSI Config Server (/home/opsiproduct/$ProductId$/CLIENT_DATA/driver/drivers/additional/byAudit/$Hersteller$/$Modell$) nach dem Schema des byAudit verfahren.
Anschließend wird über ein CMD-Aufruf eine Putty Konsole via ssh-key aufgerufen und eine Befehlsdatei übergeben um das Netboot-Produkt zu löschen -> neu zu packen -> auf alle Depots hochzuladen.
Letzteres funktioniert nicht, da die Textdatei die übergeben wird wohl nicht UTF8-Codiert ist. Ändere ich das vorgehen und übergebe eine UTF8-Codierte datei, kennt die SSH die Befehle nicht mehr.... :/
Ich bin nicht so fit das ich gerade weis wie ich die Codierung on the fly umsetze. Auch das erstellen eines Shell Scripts auf dem Server und dem "nur noch" dortigen Ausführen durch Putty änder nichts daran, da der Befehl den ich übergebe "nie" UTF8 ist und das vermeindlich das Problem verursacht. Sofern ich die Fehlermeldung richtig verstehe.
Die entsprechenden Script-Sections:
Code: Alles auswählen
[DosBatch_InAnIcon_exe_putty]
echo on
"%Scriptpath%\files\Putty\putty.exe" root@<Server>-i "%Scriptpath%\files\Putty\root.ppk" -m "C:\tmp\include_driver.txt"
[Files_uninstall_dummy.txt]
del -sf "C:\tmp\include_driver.txt"
[PatchTextFile_AddLine]
GoToBottom
AddLine "opsi-setup --set-rights /home/opsiproducts/$ProductId$/CLIENT_DATA/drivers/drivers/additional/byAudit"
AddLine "cd /home/opsiproducts/$ProductId$"
AddLine "rm $ProductId$*"
AddLine "opsi-makeproductfile &> /home/opsiproducts/logfiles/doubledriver/%hostId%_makeproductfile.log
AddLine "opsi-package-manager -i $ProductId$* -d all -v"
Code: Alles auswählen
GoToBottom
AddLine "opsi-setup --set-rights /home/opsiproducts/$ProductId$/CLIENT_DATA/drivers/drivers/additional/byAudit"
AddLine "rm /home/opsiproducts/$ProductId$/$ProductId$*"
AddLine "opsi-makeproductfile /home/opsiproducts/$ProductId$ &> /home/opsiproducts/logfiles/doubledriver/%hostId%_makeproductfile.log
AddLine "opsi-package-manager -i $ProductId$* -d all -v"
Code: Alles auswählen
[1;31;40mcritical: Traceback:[0;0;0m
[1;31;40mcritical: line 386 in '<module>' in file '/usr/bin/opsi-makeproductfile'[0;0;0m
[1;31;40mcritical: line 270 in 'main' in file '/usr/bin/opsi-makeproductfile'[0;0;0m
[1;31;40mcritical: ==>>> 'ascii' codec can't encode character u'\xe8' in position 59: ordinal not in range(128)[0;0;0m
ERROR: 'ascii' codec can't encode character u'\xe8' in position 59: ordinal not in range(128)
Sperre Paket
Paket-Informationen
----------------------------------------------------------------------------
version : 1
custom package name :
incremental package : False
package dependencies :
Produkt-Informationen
----------------------------------------------------------------------------
product id : win7_krefeld
product type : netboot
version : 4.0.3
name : Windows 7 - x64
Hebe Paket-Sperre auf
Code: Alles auswählen
bash: $'\357\273\277opsi-makeproductfile': Kommando nicht gefunden.