Vorstellung: EasyTemplate

Benutzeravatar
tobias
Beiträge: 1294
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Vorstellung: EasyTemplate

Beitrag von tobias »

Hi,

ich baue aktuell an einem neuen Template welches einfacher nutzbar sein soll als das original.
Ziel soll es sein das man Werte nicht wie bisher doppelt eintragen muss (wie z.B. der Produktname)
Außerdem soll man im Idealfall nur noch eine Datei anpassen müssen, so das man an dem Grundgerüst möglichst wenig ändern muss.

Das Paket besteht dann aus diesen Dateien. Davon muss nur noch die config.opsiinc geändert werden. Alle anderen bleiben wie sie sind.
Werden jedoch zusätzliche Sektionen gebraucht kann man diese übersichtlich in den additional_* dateien unterbringen. Die Aktionen werden dann nach der letzten Standardsektion oder vor der ersten Standardsektion eingefügt.

setup.ins
uninstall.ins
delsub.ins
neu: config.opsiinc - konfigurations Datei
neu: additional_preactions.opsiinc zusätzliche Aktionen vor den standard Aktionen (für registry sektionen, file Sektionen ....)
neu: additional_postactions.opsiinc zusätzliche Aktionen nach den standard Aktionen (für registry sektionen, file Sektionen ....)
neu: additional_sections.opsiinc (für die im additional_actions.opsiinc angelegten sektionen)

Normal sollte es ausreichen die config.opsiinc zu bearbeiten. Nur wenn noch anpassungen notwendig sind muss man zusätzlich Hand anlegen.

Aktuell schaut diese config.opsiinc bei mir so aus:

Code: Alles auswählen

; ----------------------------------------------------------------
; -  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$       = "ProductName"
Set $MinimumSpace$    = "100 MB"
set $setupcommand32$ =  "msiexec /i %ScriptPath%\files\jre7_x86.msi /passive /t %ScriptPath%\files\x86_FF_IE.mst"
set $setupcommand64$ =  "msiexec /i %ScriptPath%\files\jre7_x86.msi /passive /t %ScriptPath%\files\x86_FF_IE.mst"

Set $INST_SystemType$ = GetSystemType
set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
Set $LogDir$ = "%SystemDrive%\tmp"



; ----------------------------------------------------------------
; -  Currently installed MSIIDs / Aktuelle MSIID der MSI aus diesem Paket
; ----------------------------------------------------------------

set $installed_MSI_32$ = createStringList (' ') /Für 32 Bit

set $installed_MSI_64$ = createStringList (' ') /Für 64 Bit 

set $installed_MSI_Both$ = createStringList (' ') /Wenn die MSIID bei 32+64 bit identisch ist


; ----------------------------------------------------------------
; -  MSIIDs from outdated packages / Alte MSIIDs von vorhergehenden Paketen
; ----------------------------------------------------------------
set $MSI_32$ = createStringList (' ') /Für 32 Bit

set $MSI_64$ = createStringList (' ') /Für 64 Bit 

set $MSI_Both$ = createStringList ('{26A24AE4-039D-4CA4-87B4-2F83217021FF}', '{xxxx-xxxx-xxx-xxx}') /Wenn die MSIID bei 32+64 bit identisch ist
Features:
- Anpassung von nur noch einer Script datei notwendig (Im Normalfall)
- Es können mehrere MSIs angegeben werden bei der Deinstallation (MSIIDhistory: Wichtig wenn sich die MSIID bei einem Versionssprung geändert hat)
- Trotz dem flexibel durch additional sektionen/aktionen


Das Template ist aktuell erstmal nur für MSIs gedacht.
Ich werde aber auch ein Universaltemplate bauen welches für andere Installer geeignet ist und evtl. auch ein mixed Template.

Am Ende sollen Templates stehen, die ein absoluter Anfänger einfach und zuverlässig nutzen kann - ohne sich über die Funktion dieser Scripte einen Kopf machen zu müssen.
Mir ist klar das es nicht für alle Programme nutzbar sein wird, da es immer Installerkonstrukte geben wird die sich nicht über ein Standardtemplate abbilden lassen. Aber für einfache Programme sind Templates eine echte Arbeitserleichterung. Vor allem wenn man diese Updaten will...
Ich muss noch ein wenig schrauben - und dann veröffentliche ich das im WIKI.

Meine Frage nun an euch:
Was haltet ihr davon?
Was ist für euch an diese Stelle wichtig?
Was darf auf keinen Fall fehlen?


Gruß
Tobias
mhaegele
Beiträge: 293
Registriert: 18 Aug 2010, 13:55

Re: Vorstellung: EasyTemplate

Beitrag von mhaegele »

tobias hat geschrieben:Hi,

ich baue aktuell an einem neuen Template welches einfacher nutzbar sein soll als das original.
Ziel soll es sein das man Werte nicht wie bisher doppelt eintragen muss (wie z.B. der Produktname)
Außerdem soll man im Idealfall nur noch eine Datei anpassen müssen, so das man an dem Grundgerüst möglichst wenig ändern muss.
[...]

Das Template ist aktuell erstmal nur für MSIs gedacht.
Ich werde aber auch ein Universaltemplate bauen welches für andere Installer geeignet ist und evtl. auch ein mixed Template.

Am Ende sollen Templates stehen, die ein absoluter Anfänger einfach und zuverlässig nutzen kann - ohne sich über die Funktion dieser Scripte einen Kopf machen zu müssen.
Mir ist klar das es nicht für alle Programme nutzbar sein wird, da es immer Installerkonstrukte geben wird die sich nicht über ein Standardtemplate abbilden lassen. Aber für einfache Programme sind Templates eine echte Arbeitserleichterung. Vor allem wenn man diese Updaten will...
Ich muss noch ein wenig schrauben - und dann veröffentliche ich das im WIKI.

Meine Frage nun an euch:
Was haltet ihr davon?
Was ist für euch an diese Stelle wichtig?
Was darf auf keinen Fall fehlen?


Gruß
Tobias
Hallo Tobias!
Ein ehrgeiziges Ziel ;-).
Das mit den .msi ist erstmal ganz gut, evtl. würde es ja Sinn machen 3-4 Templates für die gängigsten Anwendungsfälle, standardinstaller zu haben?
Dann wäre es evtl. auch übersichtlicher gerade wenn man das z.B. an jemand delegieren muß der auf der Linux Ebene usw. nicht ganz so fit ist ...
Bei mir sieht es auch so aus, daß ich viel aus den alten Skripten übernehme und dann immer das "Suchen" losgeht wo war noch das gleich wo diese oder jene Funktion Verwendung fand ...
Auf der Todo-Liste steht templates auch schon ewig, die Überlegung war auch schon eine Art "autobuild" Umgebung aufzubauen sodaß man nur noch die Skripte/neuen Installationsdateien in einen Pfad reinwirft
und dann ein Skript loslässt welches das Paket baut und am Depot installiert aber das gibt es ja schon teilweise mit dem grafischen Builder?
Das Lokale Admin Template ist z.B. auch so ein Monsterteil das ich mir schon mehrfach angeguckt habe aber immer noch vollständig kapiere ;-).
(Der Teil mit der lokalen Admin Installation klappt iwie nicht so ganz ...)
hth
MH
Benutzeravatar
tobias
Beiträge: 1294
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Vorstellung: EasyTemplate

Beitrag von tobias »

Hi,

ja genauso so dachte ich mir das mit den 4 Templates.
Das MSI template ist auch fast fertig .... komme nur grade nicht dazu weiter zu entwickeln :/ OPSI is leider nicht mein einziges Aufgabengebiet ....

Auf jeden Fall ist es so, dass man wirklich nur noch eine Datei anpassen muss um installation & deinstallation eines MSI pakets abzuwickeln.
Trotz dem sollte es ja so flexibel wie möglich sein also Sonderfälle zulassen. Aber auch dafür habe ich schon was eingebaut.
Es gibt also eine Konfigurationsdatei in der eingebaute Features aktiviert und deaktiviert werden können.
z.B. habe ich die Kill&Search Task funktion eingebaut mit der man nach laufenden Diensten suchen kann um diese bei Bedarf zu killen.

Ein weiteres Feature ist eine MSIID History um abwärtskompatible scripte zu ermöglichen.
Nützlich wenn z.B. ein Client ein Softwarerollout überspringt.
Benutzeravatar
tobias
Beiträge: 1294
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Vorstellung: EasyTemplate

Beitrag von tobias »

So ich hab heute mal ein bisschen Zeit gefunden mich mal wieder ein wenig um OPSI zu kümmern.
Und habe eine vorab Version des EasyTemplates fertig gestellt.
Ist sicher noch nicht perfekt aber sollte so weit funktionieren.
Vor allem die Variablen Liste muss ich aufräumen. Dadurch das ich wild Code aus dem original OPSI Template "geklaut" habe, habe ich sicherlich auch teilweise zu viel geklaut ;)

Aktuelle Features:
- MSI Unterstützung
- MSI-ID History (für verschiedene Versionsstände) bedeutet: alle angegebenen MSIIDs werden vorab zur deinstallation vorgemerkt.
Praktisch wenn man nicht sicherstellen kann das alle Clients das letzte Update auch erhalten haben.
- Zentrale Konfigurationsdatei für alle Parameter
- Check&Kill Task (prüft ob ein Programm läuft welches vorher beendet werden muss)
- Additional Sektionen

Download:
https://fraunhofer.sharefile.eu/d/sbf9dc336fa54a36b

Ideen, Verbesserungsvorschläge und Kommentare .... sind natürlich immer erwünscht :)


Gruß
Tobias
Zuletzt geändert von tobias am 05 Aug 2013, 18:59, insgesamt 1-mal geändert.
jakob42
Beiträge: 7
Registriert: 09 Nov 2011, 10:51

Re: Vorstellung: EasyTemplate

Beitrag von jakob42 »

Feine Sache. Unter welcher Lizenz stehen die? Ich bastel auch gerade an allgemeineren Templates, wo man nicht in der setup und uninstall.ins die selben Werte setzen muss und auch mit MSI-Listen deinstallieren kann. Kann ich daraus klauen, falls mir was gefällt?

Edit: Ich sehe gerade, GPL bis auf die uib-Teile...
Benutzeravatar
tobias
Beiträge: 1294
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Vorstellung: EasyTemplate

Beitrag von tobias »

jakob42 hat geschrieben:Feine Sache. Unter welcher Lizenz stehen die? Ich bastel auch gerade an allgemeineren Templates, wo man nicht in der setup und uninstall.ins die selben Werte setzen muss und auch mit MSI-Listen deinstallieren kann. Kann ich daraus klauen, falls mir was gefällt?

Edit: Ich sehe gerade, GPL bis auf die uib-Teile...
Laut UIB sind die auch GPL ;) steht jedenfalls im Template von UIB oben drin

habe grad allerdings noch ein bug in der uninstall Routine gefunden.
Wenn sich das hier beim paketieren bewährt mit diesem Template überleg ich mir auch noch was für andere (exe) Installer und misch scripte.
Auf jedenfall muss es noch eine möglichkeit geben mehrere Setup files zu hinterlegen. Kommt schon häufiger mal vor das man noch nen msp oder sonst irgendwas zusätzlich installieren muss.
Beim deinstallieren gibt es schon die möglichkeit mehrere MSIIDs zu definieren und gleichzeitig zu entfernen.
Benutzeravatar
Thomas_H
Beiträge: 525
Registriert: 09 Jun 2010, 11:57
Wohnort: Havelland

Re: Vorstellung: EasyTemplate

Beitrag von Thomas_H »

Moinsens,

alle Achtung! Tolle Idee, super Projekt! Werde mir das in Ruhe zu Gemüte ziehen und dann auch mal meine Erfahrungen und Ideen einbringen. Hab bislang nur einen sehr flüchtigen Blick drauf geworfen, mangels Zeit...

Wird opsi auf jeden Fall vorantreiben. Und Dir bestimmt einen Arbeitsplatz bei UIB sichern, oder Dir ein kostenpflichtiges Modul sichern... oder ein Bier auf der nächsten Cebit... einen Kaffee? Kugelschreiber? Bonbon? :)))

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
Benutzeravatar
tobias
Beiträge: 1294
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Vorstellung: EasyTemplate

Beitrag von tobias »

Hi,

Ich hab soeben die Delsub.ins ausgetauscht. Dort hatte sich ein Fehler eingeschlichen.

Gruß
Tobias
Benutzeravatar
tobias
Beiträge: 1294
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Vorstellung: EasyTemplate

Beitrag von tobias »

Ich habe noch ein paar Bugs gefunden.
- Bei der Deinstallationsroutine klappte es mit 64 und 32 bit nicht. (Behoben)
- Additional waren Codeschnipsel enthalten, die aus einem meiner Testpakete stammen und Fehler verursachen (Behoben)
- CheckTask ist standardmäßig aktiv - funktioniert aber irgendwie nicht mehr und verursacht Syntax Fehler (In Arbeit)

Morgen gibts ne neue Version die wenigstens die ersten beiden Sachen schonmal behebt ;)

Das schöne ist durch die Trennung von Konfiguration und Script, braucht man nur Dateien austauschen,
die Config Datei bleibt bis auf einen zusätzlichen Schalter gleich :)


Da sich das heute schon bei mir beim Paketieren bewährt hat, baue ich ein solches Script zur Zeit auch für andere installer.
So komfortabel wie MSI Dateien ist jedoch kein anderer Installer.
Benutzeravatar
tobias
Beiträge: 1294
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Vorstellung: EasyTemplate

Beitrag von tobias »

https://fraunhofer.sharefile.eu/d/s454d0db1a1e4cc39

so einmal die aktuell im Einsatz befindliche Version.
Das CheckTask funktioniert immer noch nicht - bin ich noch nicht zu gekommen.
Antworten