Eigene Software einbinden

Mike
Beiträge: 6
Registriert: 01 Apr 2009, 08:10

Eigene Software einbinden

Beitrag von Mike »

Hey,
habe das Thema Softwareverteilung als Projektthema und habe mich für das Produkt opsi entschieden. Es läuft bisher Problemlos auf einer Linux Maschine.

Naja… bis jetzt!

Habe die vorgegebenen opsi-Produkte alle automatisch auf dem Testrechner installieren können aber wie binde ich jetzt die eigene Software ein? Habe da echt kein Plan wie ich überhaupt vorgehen soll. Natürlich habe ich als erstes ins Handbuch geschaut aber ich weiß echt nicht welches Script ich wo und wie ausführen soll.

Habe hier:
http://tharsis.ubertechnique.com/unattended/Scripts
zwar einige gefunden, aber was mache ich damit?

Ach so…
Und außerdem erscheint jetzt seit neustem beim "Rumclicken" im opsi configuration editor diese Fehlermeldung:

Wed Apr 08 07:25:18 CEST 2009 -- Response 500 Internal Server Error {"error":"'%' must be followed by '%' or '(', found: '%SystemRoot%\\\\inf\\\\kqemu.inf'","id":1,"result":null}

HILFE!!!
Benutzeravatar
j.schneider
uib-Team
Beiträge: 1819
Registriert: 29 Mai 2008, 15:14

Re: Eigene Software einbinden

Beitrag von j.schneider »

Hallo,

das Erstellen von eigenen Paketen geht am einfachsten über das opsi-template-Produkt:
http://download.uib.de/opsi3.3.1/produk ... 1.0-9.opsi
Mit den folgenden Befehlen kann die Basis für ein eigenes Paket namens "test" geschaffen werden.

Code: Alles auswählen

cd /home/opsiproducts
wget http://download.uib.de/opsi3.3.1/produkte/essential/opsi-template_1.0-9.opsi
opsi-package-manager --new-product-id test -x opsi-template_1.0-9.opsi
cd test
Jetzt kann das Installations-Skript für das Produkt angepasst werden (CLIENT_DATA/test.ins).
Dann noch die benötigten Installations-Dateien (setup.exe, ...) nach CLIENT_DATA kopieren.
Jetzt kann das Produkt gepackt und installiert werden:

Code: Alles auswählen

opsi-makeproductfile
opsi-package-manager -i test_1.0-9.opsi
Um die Fehlermeldung im Configed zu analysieren benötige ich ein wenig mehr Informationen.
Bitte einmal die Log-Datei /var/log/opsi/opsiconfd/<ip-des-clients-auf-dem-der-configed-die-fehlermeldung-zeigt>.log posten.
Zusätzlich bitte noch die Ausgabe von:

Code: Alles auswählen

dpkg -l | grep opsi
Gruß
Jan Schneider
Mike
Beiträge: 6
Registriert: 01 Apr 2009, 08:10

Re: Eigene Software einbinden

Beitrag von Mike »

Hey Jan,
erstmal danke für deine Hilfe!

Entschuldige wenn ich mich anstelle wie ein DAU aber was genau an dem Befehl

Code: Alles auswählen

opsi-package-manager --new-product-id test -x opsi-template_1.0-9.opsi
gilt es zu verändern und was muss genau so stehen bleiben? Wenn ich ihn unverändert ausführe kommt die Meldung:
opsi-package-manager: error: no such option: --new-product-id
Schon klar das ich da was verändern muss aber was z.B. ist mit new-product-id gemeint?


Die Log-Datei /var/log/opsi/opsiconfd/<ip-des-clients-auf-dem-der-configed-die-fehlermeldung-zeigt>.log kann ich leider nicht öffnen, auch nicht als root

cd: /var/log/opsi/opsiconfd/: Permission denied

deshalb habe ich die C:\tmp\logonlog.txt angefügt.


Und bei 'dpkg -l | grep opsi' wird das ausgegeben:

Code: Alles auswählen

ii  opsi-atftpd                           0.7.dfsg-1.4                   advanced TFTP server - opsi version with pcr
ii  opsi-configed                         1.3.1-3                        OPSI config editor
ii  opsi-depotserver                      3.3-9                          server fuer das Softwareverteilungssystem OP
ii  opsi-linux-bootimage                  20080826-1                     Linux-Bootimage fuer das Softwareverteilungs
ii  opsi-utils                            3.3.0.10-1                     OPSI utils
ii  opsiconfd                             2.0.0.8-1                      OPSI configuration service
ii  opsipxeconfd                          0.3.4-1                        OPSI PXE configuration daemon
ii  python-opsi                           3.3.0.24-1                     OPSI python library
Dateianhänge
logonlog.txt
(11.7 KiB) 66-mal heruntergeladen
Benutzeravatar
j.schneider
uib-Team
Beiträge: 1819
Registriert: 29 Mai 2008, 15:14

Re: Eigene Software einbinden

Beitrag von j.schneider »

OK, als erstes würde ich ein Update auf opsi3.3.1 empfehlen.
in der /etc/apt/sources.list

Code: Alles auswählen

deb http://download.uib.de/debian xxxxx opsi3.3
ersetzen mit

Code: Alles auswählen

deb http://download.uib.de/debian xxxxx opsi3.3.1
Dann

Code: Alles auswählen

apt-get update && apt-get dist-upgrade
Jetzt sollte der Befehl

Code: Alles auswählen

opsi-package-manager --new-product-id test -x opsi-template_1.0-9.opsi
funktionieren.
Als root muss die Log-Datei lesbar sein!
Der Befehl

Code: Alles auswählen

whoami
sagt Dir, ob du wirklich root bist.
Mike
Beiträge: 6
Registriert: 01 Apr 2009, 08:10

Re: Eigene Software einbinden

Beitrag von Mike »

Hey,
sorry das ich erst jetzt antworte, aber ich war jetzt die ganze Zeit total in den Server vertieft. Danke schon mal für die Hilfe.

Nach dem Update und Upgrade hat alles soweit geklappt und sogar die Fehlermeldung tritt nicht mehr auf.

Die Installation der eigenen Software funktioniert allerdings noch nicht so richtig. Als Beispiel nehme ich jetzt die Freeware Firefox von Mozilla. Ich bin so wie beschrieben vorgegangen, das Produkt wird mir auch im opsi configuration editor unter der Produktkonfiguration angezeigt. Bei einem reeboot öffnet sich auch wie gewünscht netmount, winst und die Installation scheint zu starten, allerdings bricht sie jedes mal wieder ab. Anfangs kamen auch Fehlermeldungen die sich auf meine Konfiguration in der „firefox.ins“ bezogen allerdings habe ich diese alle behoben.

Hier meine Veränderung in der „firefox.ins“:

Code: Alles auswählen

set $ProductId$ = "firefox"^M
set $MinimumSpace$ = "100 MB"^M
set $InstallDir$="/home/opsiproducts/firefox/CLIENT_DATA"^M
set $NewExe$=$InstallDir$+"/"+$ProductId$+".exe"^M      
(ich habe die ‚Firefox Setup.exe’ in ‚firefox.exe’ umbenannt da er wohl mit dem Leerzeichen Probleme hatte)


Ich verstehe es nicht…

Gruß
Mike
Mike
Beiträge: 6
Registriert: 01 Apr 2009, 08:10

Re: Eigene Software einbinden

Beitrag von Mike »

Habe das Selbe jetzt auch mit dem vlc-player Probiert, doch mit dem gleichen Erfolg. Die Installation scheint zu starten und nach sehr kurzer Zeit bricht er mit der Statusmeldung „process stopped“ ab.
Benutzeravatar
j.schneider
uib-Team
Beiträge: 1819
Registriert: 29 Mai 2008, 15:14

Re: Eigene Software einbinden

Beitrag von j.schneider »

Hallo,

poste doch einmal das ganze Skript...
Mike
Beiträge: 6
Registriert: 01 Apr 2009, 08:10

Re: Eigene Software einbinden

Beitrag von Mike »

Hey,
frohe Ostern gehabt zu haben...

hier die firefox.ins

Code: Alles auswählen

; Copyright (c) uib gmbh (www.uib.de)
; This sourcecode is owned by uib
; and published under the Terms of the General Public License.
; credits: http://www.opsi.org/credits/

[Initial]
LogLevel=2
;  Log Errors in Logfile but don't abort:
ExitOnError=false
; Show syntax errors in the script:
ScriptErrorMessages=on
; Dont trace step by step through the script:
TraceMode=off
; let started programs run in front of the winst window
StayOnTop=false

[Aktionen]
DefVar $ProductId$
DefVar $MinimumSpace$
DefVar $NewExe$
DefVar $InstallDir$
DefVar $ExitCode$

; This should be edited
set $ProductId$ = "firefox"
set $MinimumSpace$ = "100 MB"
set $InstallDir$="/home/opsiproducts/firefox/CLIENT_DATA"
set $NewExe$=$InstallDir$+"/"+$ProductId$+".exe"

DefVar $TEMP$
Set $TEMP$ = EnvVar("TEMP")

; Message at install time:
Message "Installing "+$ProductId$+" ..."

if not(HasMinimumSpace ("%SYSTEMDRIVE%", $MinimumSpace$))
        LogError "Not enough space on C: . "+$MinimumSpace$+" auf C: fuer "+$ProductId$+" erforderlich."
        isFatalError
        ; stop process and set installation status to failed
else
        comment "show product picture"
        ShowBitmap /3 "%scriptpath%\"+$ProductId$+".bmp" $ProductId$

        if FileExists("%ScriptPath%\delsub.ins")
                comment  "start uninstall sub section"
                sub "%ScriptPath%\delsub.ins"
        endif

        ;Message at install time:
        Message "Installing "+$ProductId$+" ..."

        comment "start setup program"
        Winbatch_install

        comment "test for installation success via exit code"
        set $ExitCode$ = getLastExitCode
        ; informations to exit codes see
        ; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx
        ; http://msdn.microsoft.com/en-us/library/aa368542.aspx
        if not($ExitCode$ = "0")
                logError "Fatal: Setup program gives exitcode unequal zero: "+$ExitCode$
                isFatalError
        else
                comment "looks good: setup program gives exitcode zero"
        endif

        comment "copy files"
        Files_install

        comment "set Registry"
        Registry_install

        comment "set start menu"
        LinkFolder_install

        comment "test for installation success"
        if not(FileExists($NewExe$))
                logError "Fatal: After Installation "+$NewExe$+" not found"
                isFatalError
        endif

endif


[Winbatch_install]
; something like
; "%SCRIPTPATH%\Setup.exe" /S

[Files_install]
; something like
; copy -sv "%SCRIPTPATH%\files\*.*" "%ProgramFilesDir%\$ProductId$"

[Registry_install]
; something like
; openkey [HKEY_LOCAL_MACHINE\Software\$ProductId$]
; set "key"="value"

[LinkFolder_install]
; something like
; set_basefolder common_programs
; set_subfolder $ProductId$
;
; set_link
;  name: $ProductId$
;  target: $NewExe$
;  parameters:
;  working_dir: $InstallDir$
;  icon_file:
;  icon_index:
; end_link
beoperator
Beiträge: 2
Registriert: 21 Apr 2009, 01:55

Re: Eigene Software einbinden

Beitrag von beoperator »

Grüß Gott,

mir fällt auf, dass in den [xxx_install]-Bereichen alles auskommentiert ist.

Code: Alles auswählen

[Winbatch_install]
; something like
; "%SCRIPTPATH%\Setup.exe" /S
dürfte also - wenn ich richtig liege vorausgesetzt - z.B.:

Code: Alles auswählen

[Winbatch_install]
; something like
"%SCRIPTPATH%\Setup.exe" /S
heissen.
Vielleicht bekommst du es ja selbst hin, den Zeilen sinnvoll (nur bei den Skriptbefehlen, nicht bei den Hinweisen) ihre Auskommentierungen zu nehmen, und sorgfältig deinen eigenen Gegebenheiten (Pfade und Dateinamen) anzupassen.

liebe Grüße,
beoperator
Mike
Beiträge: 6
Registriert: 01 Apr 2009, 08:10

Re: Eigene Software einbinden

Beitrag von Mike »

Hey,
danke für die Antwort!

Hab das irgendwie übersehen… naja, jetzt bin ich schon mal etwas weiter, aber er macht immer noch komische Sachen. Und zwar beendet er die Installation mit einem Fehler und sagt im config editor die Installation sei fehlgeschlagen. Jedoch ist die Software einwandfrei Installiert?!#
Antworten