Localboot-Produkte: Automatische Softwareverteilung mit opsi

Als Localboot-Produkte werden alle Produkte bezeichnet, die nach einem lokalen Boot des Rechners über den opsi-client-agent installiert werden. Dies im Gegensatz zu den weiter unten beschriebenen Netboot Produkten Netboot Produkte.

opsi Standardprodukte

Die folgenden Localboot Produkte gehören zur Grundausstattung von opsi.

activate-win

Aktiviert Windows:

  • auf unterschiedlichen und konfigurierbaren Wegen

  • unter Verwendung unterschiedlicher Lizenzkey Quellen

config-win10

Konfiguriert verschiedene Windows 10 Einstellungen wie z.B. Sperrbildschirm, Hibernationboot, Telemetrie und Update-Verhalten.

  • allow_useractivity_publishing Erlaubt es Benutzeraktivitäten an Microsoft zu senden.

  • change_power_plan Energieeinstellungen ändern.

  • config-updates erlaubt es die Quelle der Updates zu ändern. Die Updates werden dann entweder direkt von Microsoft Servern, einem lokalen Peer-To-Peer Netz oder einem Peer-To-Peer Netz aus dem Internet geladen. Die Option 'disable' ist derweil über ein eigenes Property namens 'disable_updates' ermöglicht.

  • defer_upgrade verschiebt Updates und Upgrades. Updates können um vier Wochen und Upgrades um acht Monate verschoben werden. Hierbei ist zu beachten, dass sicherheitsrelevante Updates trotz 'defer' Option installiert werden. Featureupdates hingegen werden nicht installiert.

  • deferfeatureupdatesperiodindays Gibt an wie viele Tage Feature Updates, also Windows System Updates, zurückgehalten werden sollen. Der Maximalwert liegt bei 365 Tagen.

  • deferqualityupdatesperiodindays Gibt an wie viele Tage Quality Updates, also gewöhnliche Windows Updates, zurückgehalten werden sollen. Der Maximalwert liegt bei 29 Tagen.

  • disable_advertising_id deaktiviert die sogenannte Advertising ID. Diese speichert Daten über den Browserverlauf um benutzerspezifische Werbung einzublenden.

  • disable_app_suggestion_in_startmenu deaktiviert vorgeschlagene Apps im Startmenü.

  • disable_automatic_logon_on_reboot: Deaktiviert einen atuomatischen Winlogon bei automatischem Neustart, sofern es 'true' gesetzt ist.

  • disable_cortana deaktiviert den Cortana Sprachassistenten. Dieser sammelt diverse Daten über Eingaben und überträgt diese Daten an Server von Microsoft.

  • disable_customer_experience deaktiviert das Sammeln von Daten im Bezug auf Daten zur Anwendungsverwendung.

  • disable_defender deaktiviert den mit Windows 10 mitgelieferten Antivirenschutz namens 'Defender'.

  • disable_dosvc deaktiviert den Dienst für die Übermittlungsoptimierung von Telemtriedaten.

  • disable_error_report deaktiviert die Übermittlung von Fehlern an Microsoft. Dies betrifft die Fehlerdaten von Drittanbieterapplikationen.

  • disable_fast_boot deaktiviert den Schnellstart und sorgt damit dafür, dass das Standard opsi-event gui_startup sauber funktioniert.

  • disable_font_streaming sorgt dafür, dass nicht auf dem System installierte Fonts über das Internet nachgeladen werden.

  • disable_handwriting_share Eine Besonderheit ist die Verwendung von Windows 10 auf Tablet-PCs. Hierbei werden Daten über Handschriften gesammelt und an einen Microsoft Server gesendet.

  • disable_location_sensors deaktiviert das Sammeln von Daten über die aktuelle Geoposition des Geräts.

  • disable_lock_screen Sperrbildschirm deaktivieren.

  • disable_mrt deaktiviert die Verwendung des 'Malware Removal Tool', kurz MRT. Dieser Dienst scannt in regelmäßigen Abständen vorhandene Dateien auf der Festplatte des Rechners und vergleicht diese mit einer Liste von potenziell gefährlicher Software.

  • disable_news_and_interest deaktiviert die Nachrichten und Interessen Einblendungen in der Taskleiste.

  • disable_onedrive_sync deaktiviert die OneDrive Dateisynchronisation.

  • disable_push_install deaktiviert die Möglichkeit Apps aus dem Microsoft Store auf diesem Gerät per push Installation zu installieren.

  • disable_recent_apps deaktiviert die Anzeige der zuletzt verwendeten Apps im Startmenü.

  • disable_sending_feedback ermöglicht es die Übertragung von Daten an Microsoft bei Fehlverhalten von Anwendungen zu beeinflussen.

  • disable_smbv1 deaktiviere Protokoll smbv1.

  • disable_suggested_silent_app_installion deaktiviert die stille Installation von vorgeschlagenen Apps und Spielen im Hintergrund ohne Benutzerinteraktion.

  • Mit disable_telemetry ist es möglich die Menge der gesammelten Daten zu limitieren. Standardmäßig werden sehr viele Daten übertragen. Wenn das Property auf 'true' gesetzt wird, wird Windows so eingestellt, das nur noch sicherheitsrelevante Daten übertragen werden. Dies ist die niedrigste Stufe. Diese Security Stufe kann nur in der Windows 10 Enterprise und LTSB Version eingestellt werden. In den anderen Versionen von Windows 10 wird die nächst niedrige Stufe angewendet, Basic.

  • disable_update_button kann den Update Knopf in den Updateeinstellungen ausgrauen und somit unbenutzbar machen. Es kann mitunter Stunden dauern bis der Knopf wieder benutzbar wird, falls die Option von true auf false gestellt wird.

  • disable_update_service deaktiviert den Windows Update Dienst und bietet somit eine weitere Möglichkeit Updates zu verhindern.

  • disable_updates kappt bei der Option 'true' die Verbindung zu Update Informationsquellen. Somit werden keine Updates gefunden per Updater. 'false' ermöglicht die Verbindung zu Updatequellen.

  • disable_wifi_sense ermöglich es den 'Wifi Sense' genannten Dienst zu deaktivieren. Dieser Dienst ermöglicht es, gespeicherte WLAN Konfigurationen mit Kontakten zu teilen.

  • flashplayer_autorun Es gibt in Verbindung von Windows 10 mit dem Adobe Flashplayer eine Sicherheitslücke. Es wird empfohlen das Autorun-Feature des Flashplayers zu deaktivieren. Mit 'false' wird der Flashplayer nicht mehr gestartet

  • hide_known_file_extensions deaktiviert die Darstellung von üblichen Dateiendungen, wie .txt.

  • local_wsus_available (Dieses Property greift nur wenn disable_updates auf 'true' gesetzt ist.) Falls 'true' gesetzt, ermöglicht es die Verbindung zu einem localen WSUS Server. Betrifft nur Windows Updates.

  • minimize_recommendations deaktiviert die verwendung von gespeicherten Daten um Vorschläge auf dem Lockscreen einzublenden.

  • no_new_app_install_notification Ermöglicht es, eine Benachrichtigung für neue Apps zu deaktivieren. Zum Deaktivieren der Benachrichtigung muss das Property den Wert 'true' haben.

  • online_search Bei jeder Suche über die integrierte Suchleiste in der Taskleiste werden auch Online-Ergebnisse geliefert. 'true' ermöglich eine solche online Suche, 'false' verweigert diese.

  • oobedisableprivacyexperience Betrifft nur Windows 10 1809 und neuer. Deaktiviert die OOBE DIsablePrivacyExperience, falls 'true' gesetzt.

  • remove_edge_from_desktop entfernt den Desktop Shortcut des alten Edge Browsers.

  • show_all_folder_in_navbar zeigt alle Ordner in der Navigationsleiste des Windows Explorers an.

  • show_drive_letter_first zeigt den Laufwerksbuchstaben als erstes in der Übersicht an.

  • show_this_pc_instead_of_quicklaunch öffnet dieser PC anstatt eines Schnellstart Fensters.

  • sync_settings Wenn man Windows 10 in Kombination mit einem Microsoft Account nutzt, ist es möglich seine Einstellungen mit dem aktuellen Microsoft Konto zu synchronisieren. Setzt man das property 'sync_settings' auf 'false' wird dies deaktiviert.

  • wlid_service steuert das Verhalten des Windows Live ID Dienstes.

[ProductProperty]
type: bool
name: disable_fast_boot
description: Disable Fastboot for proper opsi startup
default: True

[ProductProperty]
type: bool
name: disable_lock_screen
default: True

[ProductProperty]
type: bool
name: disable_telemetry
description: Disable telemetry data transmission
default: True

[ProductProperty]
type: bool
name: disable_cortana
description: Disable Cortana assistant
default: True

[ProductProperty]
type: bool
name: disable_customer_experience
description: Disable customer experience program
default: True

[ProductProperty]
type: bool
name: disable_mrt
description: Disable Malicious Software Removal Tool
default: True

[ProductProperty]
type: unicode
name: config_updates
multivalue: False
editable: False
description: Set Windows-Update behavior
values: ["AllowPeerToPeer", "LocalPeerToPeer", "MicrosoftOnly"]
default: ["MicrosoftOnly"]

[ProductProperty]
type: bool
name: disable_mac
description: Disable Microsoft Account communication
default: False

[ProductProperty]
type: bool
name: disable_advertising_id
description: Disable Microsoft Advertising ID
default: False

[ProductProperty]
type: bool
name: disable_updates
description: Disable Windows Updates
default: False

[ProductProperty]
type: bool
name: disable_defender
description: Disable Microsoft Windows Defender
default: False

[ProductProperty]
type: bool
name: disable_wifi_sense
description: Disable Wi-Fi Sense
default: False

[ProductProperty]
type: bool
name: disable_sending_feedback
description: Disable sending feedback and diagnostics
default: False

[ProductProperty]
type: bool
name: disable_font_streaming
description: Disable font streaming of not installed fonts
default: False

[ProductProperty]
type: bool
name: defer_upgrade
description: Defer Windows 10 Upgrade
default: True

[ProductProperty]
type: bool
name: flashplayer_autorun
description: Adobe Flashplayer: allow autorun?
default: False

[ProductProperty]
type: bool
name: location_sensors
description: Disable location and sensor detection
default: True

[ProductProperty]
type: bool
name: online_search
description: Disable online search during file or command search
default: True

[ProductProperty]
type: bool
name: disable_handwrite_sharing
description: Tablet-PC: Disable sharing of handriting information
default: True

[ProductProperty]
type: bool
name: sync_settings
description: Sync settings with AccountID
default: False

swaudit + hwaudit: Produkte zur Hard- und Software-Inventarisierung

Die Produkte hwaudit und swaudit dienen der Hard- bzw. Software-Inventarisierung. Bei der Hardware-Inventarisierung werden die Daten über WMI erhoben und über den opsi-Webservice an den Server zurück gemeldet. Bei der Software-Inventarisierung werden die Daten aus der Registry (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall) erhoben und über den opsi-Webservice an den Server zurück gemeldet.

jedit

Java basierter Editor mit Syntax Highlighting für opsi-script Scripte.

microsoft-windows-policies

Konfiguriert verschiedene Windows 10 Einstellungen.
Ähnlich wie config-win10 verwendet aber Policies.
Die Dokumentation dieses Produktes findet sich als PDF im Produkt unter dem Pfad: documentation.

opsi-auto-update

opsi-auto-update ist ein Produkt, um die Pflege der Clients zu vereinfachen.

opsi-auto-update ist nicht geeignet für Clients mit der WAN-Erweiterung. Verwenden Sie hier: opsi-outdated-to-setup

Im Kern ist es die Aufgabe des Produktes, dafür zu sorgen, die installierten Produkte aktuell zu halten.
Das Produkt setzt alle installierten Produkte, deren Version nicht identisch mit der auf dem Server ist, für den Client auf setup.

Properties zur Behandlung von Ausnahmen:

  • name: products_to_exclude

    • description: (Blacklist) Which opsi product(s) should be excluded from update ?
      Liste von Produkten, die nicht installiert werden sollten auch wenn es ein Update gibt (wie z.B. windomain)

  • name: products_to_exclude_by_regex

    • description: (Blacklist) Which opsi product(s) should be excluded from update (by regular expressions)?
      Liste von regular expressions, die auf Produkte passen, welche nicht installiert werden sollten auch wenn es ein Update gibt (wie z.B. windomain)

  • name: products_to_include

    • description: (Whitelist) Which opsi product(s) should be checked for update ? ; If empty = all products
      Hier kann man eine Liste von Produkten angeben, auf die die Updateprüfung beschränkt werden soll. Produkte, welche nicht in dieser Liste sind, werden auch nicht bei der Prüfung auf Updates berücksichtigt. Ausnahme: Wenn die Liste leer ist, wird gegen alle Produkte geprüft.

Properties zur Behandlung von Ergänzungen:

  • name: products_to_run_always

    • description: Which opsi product(s) should be installed via every update ? (List will not be cleared after run)
      Liste von Produkten, welche bei jedem Lauf von opsi-auto-update auf setup gestellt werden.

  • name: setup_after_install

    • description: Which opsi product(s) should we switch to setup after update is done ?
      Liste von Produkten, welche nach jedem Lauf von opsi-auto-update auf setup gestellt werden. (z.B. shutdownwanted)

  • name: failed_products_to_setup

    • description: if true this also sets all failed products to setup on all clients
      Wenn auf True, werden alle Produkte, die auf failed stehen, erneut auf setup gesetzt.

Properties zur Ablaufsteuerung:

  • name: shutdown_on_finish

    • description: if true we have a final shutdown if false we have no reboot / shutdown default: False
      Soll nach Abschluß des Produktes heruntergefahren werden ?

Special Properties für local-image / vhd-reset:
siehe auch: opsi vhd reset
siehe auch: opsi local image

  • name: do_cleanup

    • description: If false: skip restore before update
      Diese Property wird ignoriert, wenn es sich nicht um eine vhd oder local.image Installation handelt.
      Bei einer vhd Installation wird bei do_cleanup=true vor den Updates opsi-vhd-control aufgerufen und dadurch werden alle Änderungen verworfen und der gespeicherte Zustand wieder hergestellt.
      Bei einer local-image Installation wird bei do_cleanup=true vor den Updates opsi-local-image-restore aufgerufen und dadurch werden alle Änderungen verworfen und der gespeicherte Zustand wieder hergestellt.
      In beiden Fällen werden dabei auch die Informationen über Actionrequests verworfen. Um trotzdem während eines Laufs von opsi-auto-update Produkte hinzuzufügen oder entfernen zu können, gibt es die folgenden beiden Properties.

  • name: products_to_install

    • description: Which opsi product(s) should be installed via update ? (List will be cleared after run)
      Liste von Produkten, welche beim Lauf von opsi-auto-update auf setup gestellt werden. Wenn die Produkte erfolgreich abgearbeitet wurden, werden sie aus dieser Liste gelöscht.

  • name: products_to_uninstall

    • description: Which opsi product(s) should be uninstalled via update ? (List will be cleared after run)
      Liste von Produkten, welche beim Lauf von opsi-auto-update auf uninstall gestellt werden. Wenn die Produkte erfolgreich abgearbeitet wurden, werden sie aus dieser Liste gelöscht.

  • name: do_merge

    • description: If false: skip backup after update
      Diese Property wird ignoriert, wenn es sich nicht um eine vhd oder local.image Installation handelt.
      Bei einer vhd Installation wird bei do_cleanup=true nach den Updates opsi-vhd-control mit upgrade=true aufgerufen und dadurch werden alle Änderungen gespeichert.
      Bei einer local-image Installation wird bei do_cleanup=true nach den Updates opsi-local-image-backup aufgerufen und dadurch werden alle Änderungen gespeichert.

Properties zu Debug-Zwecken (Finger weg):

  • name: disabled
    Diese Property dient zu Debug-Zwecken.
    Wenn 'true', dann führt das Produkt keine Aktionen aus.
    Default = 'false'

  • name: rebootflag
    Bitte während des Laufes nicht ändern. Sollte vor dem Start '0' sein.

  • name: stop_after_step
    Diese Property dient zu Debug-Zwecken.
    Wenn nicht '0', dann Anzahl der Reboots, nach denen gestoppt wird. Default = '0'

Das Produkt opsi-auto-update hat eine sehr niedrige Priorität (-97), welche noch geringer ist als die von opsi-vhd-control.

Das opsi-Produkt opsi-auto-update kann gut mit einem cron-job, der das opsi-wakeup-clients ausführt, kombiniert werden.
(opsi-wakeup-clients ist Bestandteil des opsi-utils Paketes)
Zur Dokumentation siehe hier: opsi-wakeup-clients
In dem Kontext der Automatiserung von Clientupdates siehe auch:
opsi-outdated-to-setup
working-window

opsi-cli

Clientversion des Kommandozeilentools opsi-cli
Siehe auch Kapitel: opsi-cli

opsi-client-agent

Der opsi-client-agent ist der Clientagent von opsi und weiter oben ausführlich beschrieben: siehe Kapitel opsi-client-agent.

Zu dieser Gruppe von opsi-Standardprodukte gehören auch:

  • opsi-linux-client-agent (für Linux)

  • opsi-mac-client-agent (für macOS)

opsi-client-kiosk

Der opsi-client-kiosk (Software on Demand) bietet opsi-Administratoren die Möglichkeit, ihren Anwendern eine Auswahl an opsi Produkten zur Verfügung zu stellen. Diese opsi Produkte können vom Anwender, ohne Eingriff von einem Administrator, ausgewählt und die Installation gestartet werden.

Zu dieser Gruppe von opsi-Standardprodukte gehören auch:

  • l-opsi-client-kiosk (für Linux)

  • m-opsi-client-kiosk (für macOS)

Siehe auch Kapitel: Software On Demand

opsi-configed

opsi Graphical Management Interface als Applikation.
Stellt auch den 'opsi-logviewer' zur Verfügung.
Für Windows, Linux und macOS.
Siehe auch Kapitel: opsi-Management GUI: opsi-configed

opsi-script-beautifier

Werkzeug um opsi-script Code automatisch einzurücken.

opsi-script-test

Große Sammlung von opsi-script Selbsttests. Diese kann als Beispielsammlung für funktionierende Aufrufe von opsi-script Befehlen verwendet werden.

opsi-script

Das Produkt opsi-script ist ein Spezialfall. Es enthält den aktuellen opsi-script. Dieser muss zur Aktualisierung nicht auf setup gestellt werden. Vielmehr prüft ein Teil des opsi-client-agent bei jedem Start, ob auf dem Server eine andere Version des opsi-script verfügbar ist und holt sich diese im Zweifelsfall.

opsi-setup-detector

Der opsi-setup-detector ist ein grafisches Werkzeug zur Erstellung von opsi Produkten auf Basis von Setupprogrammen, sowie zur Bereitstellung von opsi Template Produkten.

Siehe auch Kapitel: opsi Setup Detector

opsi-uefi-netboot

Rebootet einen UEFI Rechner in den Netzwerkboot.
Siehe auch Kapitel: opsi mit UEFI / GPT

opsi-wim-capture

Capturen einer bestehenden Windowsinstallation als Image in eine WIM-Datei.

Hierzu gehören auch:

  • opsi-wim-delete

  • opsi-wim-info

Siehe auch Kapitel: opsi WIM Capture

opsi-win-driver-update

opsi-win-driver-update ist nicht geeignet für Clients mit der WAN-Erweiterung.

opsi-win-driver-update ist ein opsi Produkt um existierende Windows Installationen mit aktualisierten Treibern zu versorgen.

Neue Treiber werden dabei üblicherweise zunächst in das Treiberrepository für die Betriebssysteminstallation integriert.

Wie das im einzelnen geschieht ist beschrieben im Windows-Client-Handbuch Kapitel:
Treiber die über die Felder <vendor>/<model> der Inventarisierung automatisch den Rechnern zu geordnet werden.

und im Benutzeroberflächen Kapitel:
Automatisierte Treiberintegration

Per default versucht das Produkt das netbootproduct zu ermitteln von dem das laufende Betriebssystem installiert wurde. Von diesem netboot Produkt wird das 'byAudit' Treiber Repository als Quelle für die Treiber verwendet.
Das Script versucht das verwendete netbootprodukt selbst zu erkennen, es kann aber auch über das Property netbootproduct explizit angegeben werden.
Über das Property diver_path kann aber auch ein komplett anderes Treiberrepository angegeben werden. Dieses wird dann aber nicht nach <vendor>/<model> gefilter, sonder komplett verwendet.

Die Properties:

  • name: driver_path
    description: Path to the driver directory.
    'auto'= from netboot product driver repo
    default=auto

  • name: netbootproduct
    description: name of the netboot product (where we can find the driver in driver_path auto mode).
    'auto'= try to detect the used netboot product
    default=auto

  • name: force_import_cert_from_sys
    description: if true, installation of not correct signed drivers will be possible by extracting the certs from the .sys file and import them to the cert store
    default=false

  • name: force_reinstallation
    description: if true, we try to install the driver even if it seems to be installed in the repo version
    default=false

Die gefundenen Treiberverzeichnisse werden wie folgt gefiltert: Alle Verzeichnisse welche eins der folgenden Muster enthalten werden verworfen:
autorun.inf, WINXP, XP, WIN200, WIN2K, VISTA, WINPE
Auf einem 64 Bit System werden alle Verzeichnisse welche eins der folgenden Muster enthalten werden verworfen:
32, x86, DrvBin32 ,WIN32, IA32, IA-32
Auf einem 32 Bit System werden alle Verzeichnisse welche eins der folgenden Muster enthalten werden verworfen:
64, x64 , DrvBin64, WIN64, x86-64, amd64

opsi-winpe

Produkt zur einfachen Erzeugung eine opsi-winpe.
Siehe auch: WinPE erstellen

opsipackagebuilder_wlm

Grafisches Werkzeug zum bearbeiten von opsi Paketen aus der Community.
Für Windows, Linux und Mac.
Siehe auch:

shutdownwanted

Fährt den Rechner herunter, wenn keine weiteren Aktionen mehr gesetzt sind.

windomain

Steuert die Aufnahme von Windows, macOS and Ubuntu Clients in eine AD / Samba4 Domain

windows10-enablement

Produkt um bestimmte Windows 10/11 Releases durch die Installation eines Hotfixes auf auf eine höhere Version upzugraden, ohne ein komplettes Inplace Upgrade durchführen zu müssen.
Updates Windows 10 1903 to 1909 or Windows 10 2004, 20H1 and 21H1 to version 21H2

windows10-upgrade

Führt Windows Releaseupgrade aus.
Die Dokumentation dieses Produktes findet sich als PDF im Produkt unter dem Pfad: localsetup\docs

windows11-upgrade

Führt Windows Releaseupgrade aus.
Die Dokumentation dieses Produktes findet sich als PDF im Produkt unter dem Pfad: localsetup\docs

Abhängigkeiten und Reihenfolge

Für Produkt-Aktionen können Sie einerseits die Priorität und andererseits Abhängigkeiten definieren.

Produktprioritäten

Produktprioritäten dienen dazu, bestimmte Pakete in der Reihenfolge nach vorne oder nach hinten zu schieben. So ist es z.B. sinnvoll Servicepacks und Patches an den Anfang einer Installation zu legen und eine Softwareinventarisierung an das Ende.
Produktprioritäten sind Zahlen zwischen 100 (höchste) und -100 (niedrigste). Keine Priorität (0) ist der Standardwert.

Produktabhängigkeiten

Es können Abhängigkeiten zwischen Produkt-Paketen definiert werden. Diese Abhängigkeiten gelten immer für eine bestimmte Aktion (z.B. setup). Für unterschiedliche Aktionen können unterschiedliche Abhängigkeiten definiert werden.

Produktabhängigkeiten besitzen die folgenden Attribute:

productId

Das Produkt für das die Abhängigkeit gilt.

productAction

Die Aktion für die die Abhängigkeit gilt (z.B.: setup, uninstall)

requiredProductId

Das Produkt zu dem die Abhängigkeit besteht.

requiredProductVersion

Eine genaue Produkt-Version des abhängigen Produktes (optional).

requiredPackageVersion

Eine genaue Paket-Version des abhängigen Produktes (optional).

requiredInstallationStatus

Der Installations-Status, den das abhängige Produkt erfüllen muss.

requiredAction

Eine Aktion, die für das abhängige Produkt gesetzt werden soll.

requirementType

Typ der Abhängigkeit (before, after oder undefiniert).

Mit Produktabhängigkeiten ist es möglich einen Installations-Status eines anderen Produktes (requiredInstallationStatus) als Bedingung zu setzen. Beim Setzen einer Aktion, die eine solche Abhängigkeit definiert, wird dann auch eine Aktion für das abhängige Produkt gesetzt, wenn diese notwendig ist um die Bedingung zu erfüllen.

Hierzu ein Beispiel:
Die Software LibreOffice (Produkt: libreoffice) benötigt für gewisse Features ein installiertes Java Runtime Enviroment (Produkt: jre).
Das kann mit der folgenden Produktabhängigkeit abgebildet werden:
productId: libreoffice
requiredProductId: jre
requiredInstallationStatus: installed

Wenn die Bedingung zwingend vor (before) oder nach (after) der Aktion erfüllt sein muss, kann der Typ der Abhängigkeit entsprechend gesetzt werden.

Hierzu ein Beispiel:
Das Firefox-Addon Kee Password Manager (Produkt: firefox-addon-kee) benötigt bei der Installation einen installierten Firefox Browser (Produkt: firefox).
Das kann mit der folgenden Produktabhängigkeit abgebildet werden:
productId: firefox-addon-kee
requiredProductId: firefox
requiredInstallationStatus: installed
requirementType: before

Die Abhängigkeits-Typen before und after sollten nur dann verwendet werden, wenn eine Reihenfolge tatsächlich zwingend benötigt wird. Ansonsten reicht eine Abhängigkeit ohne Angabe eines requirementType aus. Eine weniger strikte Steuerung von Reihenfolgen kann auch über die Produktprioritäten erreicht werden.

Reihenfolge von Produkt-Aktionen

Die Reihenfolge der Produkt-Aktionen wird unter Berücksichtigung von Produktabhängigkeiten und Produktprioritäten berechnet.

Die auszuführenden Produkt-Aktionen werden zuerst gruppiert. Hierbei werden alle Aktionen von Produkten in einer Gruppe zusammengefasst, die untereinander Abhängigkeiten vom Typ after oder before haben.

Innerhalb dieser Gruppen werden die Aktionen nach den Produkt-Prioritäten sortiert (höchste zuerst) und dann aufgrund der, über before und after definierten Abhängigkeiten, nochmals umsortiert. Die Gruppe übernimmt dabei die Priorität der enthaltenen Produkt-Prioritäten. Hierbei wird die niedrigste Priorität verwendet wenn alle enthaltenen Produkt-Prioritäten negativ sind. In jedem anderen Fall übernimmt die Gruppe die höchste enthaltene Priorität.

Die Aktionen werden dann nach der Priorität der Gruppe (höchste zuerst) und dann nach der Sortierung innerhalb der Gruppe ausgeführt.

Ein Produkt mit niedriger Priorität kann in der Reihenfolge weit nach vorne geschoben werden wenn es von einem anderen Produkt mit hoher Priorität als Abhängigkeit mit dem Typ before benötigt wird.

Erstellung von Prioritäten und Produktabhängigkeiten

Prioritäten und Produktabhängigkeiten gehören zu den Meta-Daten eines opsi-Produktes. Diese werden bei der Erstellung eines Produktes mit dem Befehl opsi-newprod abgefragt.

Diese Metadaten werden im control file des Produktes abgelegt und können dort editiert werden. Nach einer Veränderung im control file muss das Produkt neu gepackt und installiert werden.

Siehe hierzu auch das Kapitel: Priorität und Abhängigkeiten

Einbindung eigener Software in die Softwareverteilung von opsi

Die Anleitung zur Einbindung eigener Software finden Sie im Kapitel: Eigene Software einbinden