Pakete erstellen - Allgemeine Syntax

Antworten
staybb
Beiträge: 90
Registriert: 04 Jan 2012, 10:23

Pakete erstellen - Allgemeine Syntax

Beitrag von staybb »

Ist es generell möglich folgende Syntax für die Verteilung verschiedenster Pakete/Programme zu verwenden?

Code: Alles auswählen

[Initial]
Message=Installiere ****
StayOnTop=false
[Aktionen]
Winbatch_product_silent_install
[Winbatch_product_silent_install]
msiexec.exe /i %SCRIPTPATH%\****.msi REBOOT=ReallySuppress /qb-!
Je nach Programm natürlich angepasst.

Wir wollen opsi produktiv einsetzen und haben schon zwei Pakete erfolgreich mit dieser Syntax verteilt.

Meine Frage lautet einfach, ob man mit diesen Befehlen die meisten Programme verteilen kann oder muss man etwas beachten?
Benutzeravatar
Thomas_H
Beiträge: 524
Registriert: 09 Jun 2010, 11:57
Wohnort: Havelland

Re: Pakete erstellen - Allgemeine Syntax

Beitrag von Thomas_H »

Moinsens,

das kann man pauschal nicht sagen. Meine Erfahrung geht dahin, dass fast jedes Installationsprogramm andere Aufrufparameter hat. Die wiederholen sich zwar, je nach Hersteller des Setup-Programms, aber das zu installierende Programm an sich hat seine Eigenheiten. Dein Script berücksichtigt auch keine Addons, die vielleicht zu installieren sind, keine Registry-Einträge, die gesetzt werden müssen.

Grundsätzlich ist es gut, sich eine Vorlage zu schreiben. Ich persönlich würde aber immer eine Section haben, in welcher ich nur die Parameter ändere. Ich zieh hier mal ein Beispiel (hier: IrfanView) aus einem meiner Scripte:

Code: Alles auswählen

DefVar $MsiId32$
DefVar $UninstallProgram32$
DefVar $MsiId64$
DefVar $UninstallProgram64$
DefVar $LogDir$
DefVar $ProductId$
DefVar $MinimumSpace$
DefVar $InstallDir32$
DefVar $InstallDir64$
DefVar $ExitCode$
DefVar $LicenseRequired$
DefVar $LicenseKey$
DefVar $LicensePool$
DefVar $INST_SystemType$
DefVar $INST_architecture$
DefVar $Version$
DefVar $Inst_Cmd32$
DefVar $Inst_Cmd64$
DefVar $Inst_Prg$
DefVar $Inst_Cmd_Plg$
DefVar $Inst_Prg_Plg$
 
Set $INST_SystemType$ = GetSystemType
set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
 
 
Set $LogDir$ = "%SystemDrive%\tmp"
 
; ----------------------------------------------------------------
; - Please edit the following values                             -
; ----------------------------------------------------------------
;$ProductId$ should be the name of the product in opsi
; therefore please: only lower letters, no umlauts,
; no white space use '-' as a seperator
Set $ProductId$       = "irfanview"
;Kein Punkt in der Versionsnummer! 4.30 ist 430, 4.40 ist 440 oder 4.51 ist 451!
Set $Version$         = "430"
Set $MinimumSpace$    = "3 MB"
; the path were we find the product after the installation
Set $InstallDir32$      = "%ProgramFiles32Dir%\IrfanView"
Set $InstallDir64$      = "%ProgramFiles64Dir%\IrfanView"
Set $LicenseRequired$ = "false"
Set $LicensePool$     = "p_" + $ProductId$
Set $Inst_Prg$ = ""+"iview"+$Version$+"_setup.exe"+""
Set $Inst_Cmd32$ = ' /silent /folder="'+$InstallDir32$+'" /desktop=1 /allusers=1 /group=1 /assoc=1'
Set $Inst_Cmd64$ = ' /silent /folder="'+$InstallDir64$+'" /desktop=1 /allusers=1 /group=1 /assoc=1'
Set $Inst_Prg_Plg$ = "irfanview_plugins_"+$Version$+"_setup.exe"
Set $Inst_Cmd_Plg$ = ' /silent'
 
; ----------------------------------------------------------------
Hier kann man sich immer wieder auf die oben definierten Variablen beziehen und dann den Rest des Scriptes beinahe pauschal für alles schreiben. Besonderheiten von zu kopierenden Modulen, AddOns usw. sind natürlich auch hier nicht berücksichtigt. Wäre aber mit einer If-Schleife abfragbar, wenn ich eine Variable "Set $CopyModul$ = 0" habe. Ist sie 0, wird die Sektion mit dem copy-Befehl ignoriert, ist sie 1, wird sie abgearbeitet - natürlich muss ich sie dann auch definieren.

Und wichtig auch ist IMHO das Errorhandling, was bei einem solchen kurzen Script nicht berücksichtigt ist.

Gruß

Thomas_H
Kennst Du schon die WIKI für OPSI-Scripte? Fertige Installationsscripte bekommen und ablegen unter OPSI-Wiki
Aus dem Glashaus :) : UIB bietet auch Schulungen und Supportverträge für Opsi an.
Bild
cmu
Beiträge: 31
Registriert: 30 Nov 2011, 15:17

Re: Pakete erstellen - Allgemeine Syntax

Beitrag von cmu »

Aber prinzipiell lässt sich so ein großteil von Software installieren, wenn auch recht simpel. Aber darauf lässt sich aufbauen. Ich habe auch so angefangen und nun schon recht komplexe Scripte die Prüfen ob die Software noch läuft, welche Version installiert ist und entsprechend die alte deinstalliert und soweiter..
Benutzeravatar
tobias
Beiträge: 1291
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Pakete erstellen - Allgemeine Syntax

Beitrag von tobias »

ich mach das auch immer so. Wenn ne Software dringend benötigt wird auf einem Client mache ich erstmal ein Lite Paket wenn dann mal Zeit ist mache ich nen ordentliches auf Basis des Templates.
Antworten