Vorlagen für den Installer-Assistenten

Die Script-Vorlagen des opsi-setup-detectors in oPBWeb ansehen, ändern, ergänzen, zurücksetzen und aus einem ZIP importieren.

Rolle: Administrator

Überblick

Aus den Vorlagen erzeugt der Assistent Paket aus Installer die Scripte und Dateien eines neuen Pakets. Es sind die Vorlagen des opsi-setup-detectors (template-files), die oPBWeb mitbringt. Beim ersten Start übernimmt oPBWeb sie in die Datenbank; dort kannst du sie in der Ansicht Vorlagen ändern, eigene hinzufügen, löschen oder eine neuere Fassung aus einem ZIP importieren. Ein neues Image ist dafür nicht nötig.

Die Ansicht Vorlagen in der Aktivitätsleiste sehen alle Benutzer. Ändern dürfen nur Administratoren; alle anderen sehen den Hinweis „Nur lesen: Vorlagen ändern dürfen nur Administratoren.“

Aufbau: Kanäle und Gruppen

Die Vorlagen sind wie beim opsi-setup-detector in Kanäle und Gruppen gegliedert. Jede Datei hat den Pfad <Kanal>/<Gruppe>/<Datei>.

KanalInhalt
Training (ausführlich kommentiert) (training)Scripte mit vielen Erklärungen
Standard (default)die üblichen Vorlagen des opsi-setup-detectors; Rückfallebene für alle anderen Kanäle
Strukturiert (structured)Scripte, die stärker in einzelne Dateien aufgeteilt sind
Eigene (custom) (custom)leer ausgeliefert; Platz für eure eigenen Vorlagen
GruppeVerwendet für
win, lin, macPakete für ein Betriebssystem
multiPakete für mehrere Betriebssysteme
with-userInstallation im Benutzerkontext
genericBausteine, die alle Arten einbinden (Desktop-Icon, Lizenz, Custom-Verzeichnis, Profilanpassung, osd-lib.opsiscript …)
imagesStandardbilder der Produkte je Betriebssystem

Welchen Kanal ein neues Paket verwendet, wählt der Packager im Assistenten; vorbelegt ist der Kanal aus den Einstellungen .

Reihenfolge der Suche

Der Generator sucht jede Datei in dieser Reihenfolge und nimmt den ersten Treffer:

  1. im gewählten Kanal in der Gruppe des Pakets, zum Beispiel custom/win/setup.opsiscript,
  2. im Kanal Standard in derselben Gruppe, default/win/setup.opsiscript,
  3. in default/generic.

Im Kanal Eigene (custom) musst du deshalb nur die Dateien anlegen, die von Standard abweichen. Findet der Generator eine Datei nirgends, lässt er den Baustein aus und meldet „Vorlage … fehlt, der Baustein wird ausgelassen“.

Platzhalter

Die Vorlagen enthalten Platzhalter der Form #@name*#, zum Beispiel #@productId*# für die Product-ID oder #@installCommandLine1*# für den Installationsbefehl des ersten Installers. Beim Erzeugen eines Pakets ersetzt der Generator sie durch die Werte aus dem Assistenten; Groß- und Kleinschreibung spielt dabei keine Rolle. Steht ein Platzhalter für mehrere Zeilen, rückt der Generator alle Zeilen wie die Zeile des Platzhalters ein.

Rechts neben dem Editor listet der Bereich Platzhalter alle Platzhalter der geöffneten Datei auf. Bleibt beim Erzeugen ein Platzhalter übrig, für den der Generator keinen Wert kennt, meldet der Job „Nicht ersetzte Platzhalter in den erzeugten Dateien: …“. Eigene Platzhalter kannst du nicht einführen; verwende in eigenen Vorlagen nur die Namen, die in den mitgelieferten Dateien vorkommen.

Die Ansicht Vorlagen

Links steht der Baum mit Kanälen, Gruppen und Dateien, darüber ein Filterfeld. Ein Klick auf einen Kanal oder eine Gruppe klappt ihn zu oder auf; ein Klick auf eine Gruppe wählt sie außerdem als Ziel für neue Dateien und Uploads. Jede Datei trägt ein Abzeichen:

AbzeichenBedeutung
mitgeliefertunverändert, wie im Image von oPBWeb
geändertmitgelieferte Datei mit geändertem Inhalt; lässt sich zurücksetzen
eigenevon einem Administrator angelegt, hochgeladen oder importiert
gelöschtgelöschte mitgelieferte Datei; nur sichtbar mit Gelöschte mitgelieferte Vorlagen

Ein Klick auf eine Datei öffnet sie rechts im Editor. Textdateien bearbeitest du dort mit denselben Funktionen wie im Scripteditor ; Bilder und andere Binärdateien kannst du nur herunterladen oder per Upload ersetzen.

Vorlage bearbeiten

  1. Öffne Vorlagen in der Aktivitätsleiste.
  2. Klick im Baum auf die Datei, zum Beispiel Standard › win › setup.opsiscript.
  3. Ändere den Text im Editor.
  4. Klick auf Speichern oder drück Strg S. Die Meldung „Vorlage gespeichert“ bestätigt das. Eine mitgelieferte Datei trägt danach das Abzeichen geändert.

Die Änderung gilt für alle Pakete, die danach mit dem Assistenten entstehen. Bereits erzeugte Pakete ändern sich nicht.

Weitere Aktionen

SchaltflächeWirkung
Herunterladenlädt die Datei herunter (alle Rollen)
Zurücksetzensetzt eine geänderte mitgelieferte Datei nach einer Rückfrage auf den mitgelieferten Stand zurück; deine Änderungen gehen verloren
Umbenennennur bei eigenen Dateien: neuer Dateiname, Unterordner mit /. Mitgelieferte Dateien lassen sich nicht umbenennen; lege stattdessen eine Kopie als eigene Vorlage an
Löschenlöscht nach einer Rückfrage die Datei, siehe unten
+ (Neue Vorlage)legt eine leere Textdatei an: Kanal, Gruppe, Dateiname
Pfeil nach oben (Datei hochladen)lädt eine Datei in Kanal und Gruppe; mit Vorhandene Datei ersetzen überschreibt sie eine gleichnamige Datei
Ordner mit Plus (Vorlagen importieren)importiert ein ZIP, siehe ZIP importieren

Dateinamen bestehen aus Buchstaben, Ziffern, Punkt, Plus, Leer-, Binde- und Unterstrich, Unterordner trennst du mit /. Gruppennamen bestehen aus Kleinbuchstaben, Ziffern, Binde- und Unterstrich. Eine Datei darf höchstens 16 MB groß sein.

Löschen und Wiederherstellen

  • Eine eigene Datei ist nach dem Löschen weg.
  • Eine mitgelieferte oder geänderte Datei bleibt als gelöschter Eintrag erhalten. Der Generator verwendet sie nicht mehr, und auch ein Update von oPBWeb bringt sie nicht zurück. Hake unter dem Baum Gelöschte mitgelieferte Vorlagen an, um diese Einträge zu sehen; Wiederherstellen holt den mitgelieferten Stand zurück.

Löschst du eine Datei im gewählten Kanal, greift beim Erzeugen die Suchreihenfolge : Der Generator nimmt dann die Datei aus Standard bzw. default/generic, falls es sie dort gibt.

Vorlagen bei einem Update

Ein neues Image von oPBWeb kann neuere Vorlagen mitbringen. Beim Start gleicht die API die Datenbank damit ab:

  • Unveränderte mitgelieferte Dateien bekommen den neuen Inhalt.
  • Geänderte Dateien behalten deinen Inhalt. Zurücksetzen führt dann auf die neue mitgelieferte Fassung.
  • Gelöschte mitgelieferte Dateien bleiben gelöscht.
  • Neue Dateien kommen hinzu, eigene Dateien bleiben unberührt.

Vorlagen aus einem ZIP importieren

So übernimmst du eine neuere Fassung der Vorlagen des opsi-setup-detectors, ohne auf ein neues Image zu warten, oder verteilst eure eigenen Vorlagen auf eine zweite oPBWeb-Installation.

  1. Besorg dir den Ordner template-files des opsi-setup-detectors: aus dem GitHub-Repository opsi-org/lazarus (Ordner opsi-misc/opsisetupdetector/template-files) oder aus der Installation eines opsi-setup-detectors.
  2. Pack ihn als ZIP. Erlaubt sind zwei Aufbauten, jeweils auch mit einem zusätzlichen Ordner darüber wie template-files/:
    • <Kanal>/<Gruppe>/<Datei> mit einem oder mehreren Kanälen (training, default, structured, custom),
    • <Gruppe>/<Datei> für einen einzelnen Kanal; den Kanal wählst du dann beim Import.
  3. Klick in der Ansicht Vorlagen über dem Baum auf Vorlagen importieren.
  4. Wähl unter ZIP-Datei die Datei aus.
  5. Wähl unter In Kanal importieren den Zielkanal oder wie im ZIP.
  6. Hake Vorhandene Vorlagen ersetzen an, wenn vorhandene Dateien den Inhalt aus dem ZIP bekommen sollen. Ohne Haken kommen nur neue Dateien dazu.
  7. Klick auf Importieren. Die Meldung nennt das Ergebnis, zum Beispiel „Import: 3 neu, 12 ersetzt, 140 übersprungen“.

Neue Dateien aus dem ZIP werden eigene Vorlagen. Ersetzte mitgelieferte Dateien gelten als geändert und lassen sich weiter zurücksetzen. Gelöschte mitgelieferte Dateien, die im ZIP vorkommen, holt der Import zurück. Übersprungen werden unveränderte Dateien, Ordner, Links, Dateien über 16 MB und Namen, die der Editor nicht annimmt. Ein ZIP darf höchstens 5000 Dateien enthalten.

Protokoll

Jede Änderung an den Vorlagen erscheint im Protokoll : detector.template_created, detector.template_uploaded, detector.template_updated, detector.template_reset, detector.template_deleted und detector.templates_imported.