Installationsdateien nicht aus dem Depot nutzen

highman72
Beiträge: 83
Registriert: 28 Sep 2008, 10:07

Installationsdateien nicht aus dem Depot nutzen

Beitrag von highman72 »

Hallo,

ich habe noch mal zwei grundsätzliche Fragen:
  • Wenn ich mit newprod eine neue Software erstelle, ein Skript schreibe und dann mit makeproductfile eine .opsi-Installation bekomme, welche ich installiere, ist dann das Skript in der .opsi-Datei oder kann ich Änderungen an dem Skript machen, ohne erneut makeproductfile aufzurufen? In der .opsi-Datei befinden sich doch die Dateien, die in CLIENT_DATA reinkopiert wurden, oder?
  • Meine Installationsdateien liegen gut sortiert auf dem Server, opsi läuft in einer VM. Ich möchte jetzt nicht jedes Programmpaket in die VM rüberziehen, um über %ScriptPath% installieren zu können. Ich weiß auch nicht, ob es eine so gute Idee ist, den Skriptpfad komplett auf den Server zu verbiegen. Ist es also irgendwie möglich von UNC-Pfade aus zu installieren, oder eher nicht, weil noch kein User angemeldet ist. Oder kann ich irgendwie ein Laufwerk vom Server mappen?
Zugegeben, sicherlich recht blöde Fragen, aber vielleicht kann mir trotzdem jemand helfen.

Ich habe das testweise mal mit 7zip probiert. Hier das Script:

Code: Alles auswählen

;7-Zip Install

[Initial]
LogLevel=3
;  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 $Server2009$
set $Server2009$="\\SERVER2009\Daten\common\Computervertrieb\Programme\Tools\7-Zip"

; Message at install time:
Message "Installing 7-Zip ..."
Winbatch_install

[Winbatch_install]
msiexec /qb ALLUSERS=2 /i "$Server2009$\7z465-x64.msi" /quiet
und hier der Log:

Code: Alles auswählen

10.03.2010 20:34:12 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getDepotId%22,%22params%22:%5B%22win7test.ramschied.intern%22%5D%7D
10.03.2010 20:34:12 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getProductInstallationStatus%5FlistOfHashes%22,%22params%22:%5B%22win7test.ramschied.intern%22%5D%7D
10.03.2010 20:34:12 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getPossibleMethods%5FlistOfHashes%22,%22params%22:%5B%5D%7D
10.03.2010 20:34:12 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getProductActionRequests%5FlistOfHashes%22,%22params%22:%5B%22win7test.ramschied.intern%22%5D%7D
10.03.2010 20:34:13 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getInstallableLocalBootProductIds%5Flist%22,%22params%22:%5B%22win7test.ramschied.intern%22%5D%7D
Computername:win7test.ramschied.intern
Computername according to Environment Variable :WIN7TEST
opsi service URL https://10.0.0.20:4447
Config path: <deprecated>\
Utils path:  <deprecated>\
Depot path:  P:\install

    bootmode BKSTD
    winst: Start sorting of products (10.03.2010 20:34:13)
    10.03.2010 20:34:13 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getProductDependencies%5FlistOfHashes%22,%22params%22:%5B%5D%7D
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Resolved sequence of products (10.03.2010 20:34:13): 
    Product 3 	7zip : setup
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    10.03.2010 20:34:13 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getProductProperties%5Fhash%22,%22params%22:%5B%227zip%22,%22win7test.ramschied.intern%22%5D%7D
    10.03.2010 20:34:13 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getProduct%5Fhash%22,%22params%22:%5B%227zip%22,%22depotserver.ramschied.intern%22%5D%7D
    scriptname: "7zip.ins", special path: "P:\install\7zip\"
    10.03.2010 20:34:13 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22setProductInstallationStatus%22,%22params%22:%5B%227zip%22,%22win7test.ramschied.intern%22,%22installing%22%5D%7D
    no script found for file name ""
    10.03.2010 20:34:36 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22setProductInstallationStatus%22,%22params%22:%5B%227zip%22,%22win7test.ramschied.intern%22,%22installed%22%5D%7D
    10.03.2010 20:34:36 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22setProductActionRequest%22,%22params%22:%5B%227zip%22,%22win7test.ramschied.intern%22,%22none%22%5D%7D
============  winst Version 4.8.8.1 WIN32 is regularly exiting. Time 2010-03-10  20:34:37 .
Als Fehlermeldung bekomme ich am Client angezeigt:
Scriptdatei P:\install\7zip\7zip.ins nicht gefunden File Err. No. 2 (Das System kann die angegebene Datei nicht finden) Nochmal versuchen?
Offenbar versucht er eine Datei ohne Dateinamen zu laden. Ich weiß nur nicht warum...

Danke vorab und Grüße
Jens
highman72
Beiträge: 83
Registriert: 28 Sep 2008, 10:07

Re: Installationsdateien nicht aus dem Depot nutzen

Beitrag von highman72 »

Mmmmh,... verwunderlich. Kann niemand was dazu sagen? Ich bin doch bestimmt nicht der einzige mit diesem Problem. Offenbar wohl doch....!

Zumindest zum 1. Punkt, müssten doch die opsi-Leute hier was sagen können.

Danke und Grüße
Highman72
jcconnor
Beiträge: 31
Registriert: 14 Feb 2010, 19:01

Re: Installationsdateien nicht aus dem Depot nutzen

Beitrag von jcconnor »

Hallo.

Du kannst dein Script jederzeit unter /opt/pcbin/install/<paketname>/<scriptname>.ins ändern.
Die Pakete werden vom package-manager dahin installiert (source und scripte).

Gruss.
highman72
Beiträge: 83
Registriert: 28 Sep 2008, 10:07

Re: Installationsdateien nicht aus dem Depot nutzen

Beitrag von highman72 »

Du kannst dein Script jederzeit unter /opt/pcbin/install/<paketname>/<scriptname>.ins ändern.
Die Pakete werden vom package-manager dahin installiert (source und scripte).
Ich verstehe das so: Wenn ich ein Paket fertig habe und dann feststelle, dass ich das Skript noch optimieren müsste, dann reicht es, das Skript zu ändern. Es muss nichts mehr "kompiliert" werden oder so, ja? Das Skript wird aufgerufen und ausgeführt, ja?

Weiß noch jemand was zum File Err. No. 2-Fehler?

Danke erstmal und Grüße
Jens
major0190
Beiträge: 41
Registriert: 18 Jul 2008, 17:16

Re: Installationsdateien nicht aus dem Depot nutzen

Beitrag von major0190 »

Hallo highman72,

funktioniert sogar sehr gut.
Zunächst erstellt du dir unter /opt/pcbin/install einen ordner z.B. "software".
Dann legst Du dir eine Datei password.cred unter /etc/samba an. Darauf achten, dass nur root lesende Rechte hat (chmod 400 password.cred).
In die password.cred schreibst du eine Zeile:

Code: Alles auswählen

password=<DEIN PASSWORT>
Jetzt erweiterst Du Deine bestehende fstab (/etc/fstab)

Code: Alles auswählen

//SERVERNAME/FREIGABE /opt/pcbin/install/software smbfs username=USERNAME/DOMAIN,credentials=/etc/samba/password.cred 0 0
Rechner durchstarten (oder mount /opt/pcbin/install/software) und schon sollte es funktionieren.
Deine Installationsdateien lädst Du jetzt nicht mehr über %scriptpath%, sonder über p:\install\software\...

Sollte eigentlich so funktionieren - hoffe habe nichts vergessen.

vg, Thomas
highman72
Beiträge: 83
Registriert: 28 Sep 2008, 10:07

Re: Installationsdateien nicht aus dem Depot nutzen

Beitrag von highman72 »

Hallo,

@major0190: vielen Dank.

Ich habe eine Weile gebraucht, bis ich mich daran gewagt habe. Habe auch noch einiges anderes probiert, mit ln Links erstellt, aber es will mir einfach nicht gelingen.

Zunächst habe ich den 7zip.ins-Fehler gefunden. Irgendwie wurde das Skript nicht nach opt/pcbin/install/<paketname> kopiert. Das habe ich nachgeholt und bin dann schon weitergekommen. Er tut so, als würde er installieren, machte es aber nicht. In den Logs bekomme ich, wenn ich über P:/install/... installiere, einen Fehler 1619 und wenn ich über \\server2009\Freigabe\ installiere, einen Fehler 1620.

Hier das Skript:

Code: Alles auswählen

;7-Zip Install

[Initial]
LogLevel=3
;  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=on
; let started programs run in front of the winst window
StayOnTop=false
 
[Aktionen]
DefVar $Server2009$
set $Server2009$="\\SERVER2009\Daten\common\Computervertrieb\Programme\Tools\7-Zip"

; Message at install time:
Message "Installing 7-Zip ..."
Winbatch_install

[Winbatch_install]
msiexec /qb ALLUSERS=2 /i "$Server2009$\7z465-x64.msi" /quiet
und der Log:

Code: Alles auswählen

11.04.2010 14:16:16 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getDepotId%22,%22params%22:%5B%22win7test.ramschied.intern%22%5D%7D
11.04.2010 14:16:16 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getProductInstallationStatus%5FlistOfHashes%22,%22params%22:%5B%22win7test.ramschied.intern%22%5D%7D
11.04.2010 14:16:16 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getPossibleMethods%5FlistOfHashes%22,%22params%22:%5B%5D%7D
11.04.2010 14:16:16 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getProductActionRequests%5FlistOfHashes%22,%22params%22:%5B%22win7test.ramschied.intern%22%5D%7D
11.04.2010 14:16:16 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getInstallableLocalBootProductIds%5Flist%22,%22params%22:%5B%22win7test.ramschied.intern%22%5D%7D
Computername:win7test.ramschied.intern
Computername according to Environment Variable :WIN7TEST
opsi service URL https://10.0.0.20:4447
Config path: <deprecated>\
Utils path:  <deprecated>\
Depot path:  P:\install

    bootmode BKSTD
    winst: Start sorting of products (11.04.2010 14:16:16)
    11.04.2010 14:16:16 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getProductDependencies%5FlistOfHashes%22,%22params%22:%5B%5D%7D
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Resolved sequence of products (11.04.2010 14:16:16): 
    Product 3 	7zip : setup
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    11.04.2010 14:16:17 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getProductProperties%5Fhash%22,%22params%22:%5B%227zip%22,%22win7test.ramschied.intern%22%5D%7D
    11.04.2010 14:16:17 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22getProduct%5Fhash%22,%22params%22:%5B%227zip%22,%22depotserver.ramschied.intern%22%5D%7D
    scriptname: "install.ins", special path: "P:\install\7zip\"
    11.04.2010 14:16:17 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22setProductInstallationStatus%22,%22params%22:%5B%227zip%22,%22win7test.ramschied.intern%22,%22installing%22%5D%7D
    
    ============ Version 4.8.8.1 WIN32 script "P:\install\7zip\install.ins"
                 start: 2010-04-11  14:16:17  (on client named as : "win7test.ramschied.intern")
    [executing: "C:\Program Files (x86)\opsi.org\preloginloader\opsi-winst\winst32.exe"]
    system infos:
    08:00:27:35:53:24  -  PC hardware address
    win7test  -  IP name 
    10.0.0.109  -  IP address
    DEU  -  System default locale 
    
    LogLevel set to 3
    
    Set  $Server2009$="\\SERVER2009\Daten\common\Computervertrieb\Programme\Tools\7-Zip"
      The value of the variable is now: "\\SERVER2009\Daten\common\Computervertrieb\Programme\Tools\7-Zip"
    
    Execution of Winbatch_install
      Call "msiexec /qb ALLUSERS=2 /i "\\SERVER2009\Daten\common\Computervertrieb\Programme\Tools\7-Zip\7z465-x64.msi" /quiet"
         Waiting until the called process is finished
      ExitCode 1620    Executed process "msiexec /qb ALLUSERS=2 /i "\\SERVER2009\Daten\common\Computervertrieb\Programme\Tools\7-Zip\7z465-x64.msi" /quiet"
___________________
0 errors
0 warnings


no script found for file name ""
11.04.2010 14:16:18 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22setProductInstallationStatus%22,%22params%22:%5B%227zip%22,%22win7test.ramschied.intern%22,%22installed%22%5D%7D
11.04.2010 14:16:18 JSON service request https://10.0.0.20:4447/rpc?%7B%22id%22:1,%22method%22:%22setProductActionRequest%22,%22params%22:%5B%227zip%22,%22win7test.ramschied.intern%22,%22none%22%5D%7D
Registry key [HKLM\SOFTWARE\opsi.org\winst]  opened
          Variable "RebootRequested"  is keeping its value "0"
          Variable "LastLogFilename"  is keeping its value "c:\tmp\instlog.txt"
          Variable "ContinueLogFile"  is keeping its value "0"
          Variable "NumberOfErrors"  is keeping its value "0"
          Key flushed
          Key closed
          Registry key [HKLM\SOFTWARE\opsi.org\winst]  opened
          Key closed
Hat irgendwer noch Ideen?

Danke und Grüße
Jens
sailqlej
Beiträge: 4
Registriert: 11 Mär 2010, 18:14

Re: Installationsdateien nicht aus dem Depot nutzen

Beitrag von sailqlej »

Wir benutzen bei der Installation ebenfalls nicht das opsi-Verzeichnis sondern eines auf unserem Fileserver. Dazu binden wir ein Netzwerklaufwerk ein.

Code: Alles auswählen

[Initial]
; Message at install time:
Message=Installing Software...
LogLevel=2
;  Log Errors in Logfile but don't abort:
ExitOnError=true
; 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=true
 
[Aktionen]
; Bild setzen
ShowBitmap /3
ShowBitmap /3 "%ScriptPath%\icon.png"
 
; Variablen definieren
DefVar $Server$
DefVar $Share$
DefVar $SrcDir$
DefVar $User$
DefVar $Pass$
DefVar $ErrorFile$
DefVar $TrgDir$
DefVar $LogFile$
DefVar $Temp$
DefVar $CheckFile$
 
; Variablen setzen
Set $Temp$ = EnvVar("TEMP")
Set $Server$ = "aesculus.cip29.tu-berlin.de"
Set $Share$ = "Apps$"
Set $SrcDir$ = "Software"
Set $TrgDir$ = $Temp$ + "\Software"
Set $User$ = "opsi"
Set $Pass$ = "******"
Set $LogFile$ = $Temp$ + "\Software.log"
Set $Errorfile$ = $Temp$ + "\Software.err"
Set $CheckFile$ = EnvVar("PROGRAMFILES") + "\Software\Software.exe"
 
; Freigabe verbinden
DosInAnIcon_ConnShare
 
; Installationsdateien lokal verfuegbar machen
Files_CopyInstallFiles
 
; Installieren
DosInAnIcon_Install
 
; Freigabe loeschen
DosInAnIcon_DisConnShare
 
; temporaere Installationsdateien loeschen
Files_DeleteInstallFiles
 
; Bild entfernen
ShowBitmap /3
 
 
; Installationserfolg ueberpruefen
if NOT (FileExists($CheckFile$))
	isFatalError
endif
 
 
; Fehlerdatei ueberpruefen
if FileExists($LogFile$)
	DosInAnIcon_CheckLogFile
	if FileExists($ErrorFile$)
		Files_DeleteErrorFile
		isFatalError
	endif
else
	isFatalError
endif
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;End [Aktionen]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
[DosInAnIcon_Install]
cd $TrgDir$\
C:
start /wait msiexec /i Software.msi TRANSFORMS=Software.mst /qn /le "$LogFile$"
 
[DosInAnIcon_ConnShare]
@echo off
net use J: /DELETE
net use J: \\$Server$\$Share$ $Pass$ /user:cip29dom\$User$
 
[DosInAnIcon_DisConnShare]
@echo off
net use J: /DELETE
 
[Files_DeleteErrorFile]
delete -f $ErrorFile$
 
[DosInAnIcon_CheckLogFile]
call cscript "%ScriptPath%\checklogfile.vbs" $LogFile$ 2
if ERRORLEVEL 1 echo %ERRORLEVEL% > $ErrorFile$
 
[Files_CopyInstallFiles]
copy -sVd "J:\$SrcDir$\INSTALL\*.*" "$TrgDir$\"
 
[Files_DeleteInstallFiles]
delete -sf "$TrgDir$\"
highman72
Beiträge: 83
Registriert: 28 Sep 2008, 10:07

Re: Installationsdateien nicht aus dem Depot nutzen

Beitrag von highman72 »

Oh, super!

Danke vorerst. Das probiere ich mal und melde mich.

Grüße aus Hessen
Jens
highman72
Beiträge: 83
Registriert: 28 Sep 2008, 10:07

Re: Installationsdateien nicht aus dem Depot nutzen

Beitrag von highman72 »

Oh, ich sehe gerade, Du kopierst die Installationsdateien vorher. Das hatte ich eigentlicht vor. Geht es auch ohne? Sollte, oder? Ich möchte nicht jedes Mal z. B. die 12 GB CS4 kopieren, um dann von lokal zu installieren. Das sollte über Gigabit Netz schneller laufen.

Hat das schon mal jemand probiert?

Grüße
Jens
sailqlej
Beiträge: 4
Registriert: 11 Mär 2010, 18:14

Re: Installationsdateien nicht aus dem Depot nutzen

Beitrag von sailqlej »

Das ist ein Relikt aus alten Tagen. Unsere Vorgänger haben das so programmiert und wir haben es so übernommen. Angeblich soll es durch Verbindungsabbrüche zu missglückten Installationen gekommen sein. Keine Ahnung ob das (immer noch) so ist. Allerdings installieren hier auch gleich knapp 200 PCs zeitgleich. Darum haben wir das bisher nicht geändert.

Anderer Punkt: Wir verteilen Adobe CS derzeit noch zusammen mit dem Image des Betriebssystems. Ich wär schon daran interessiert zu wissen wie ihr das macht. Über kurz oder lang sollen wir nämlich alle PCs der Fakultät administrieren und dann klappt das nicht mehr so einfach mit Images, weil die Hardware zu verschieden ist.
Antworten