Erste Schritte

opus bietet eine ähnliche Befehlszeilen-Syntax wie Saltstack. Ein Beispiel:

opus 'uwiw-31344' install firefox thunderbird

Der erste Teil spezifiziert die opsi-Clients, auf die die im zweiten Teil angegebene Aktion ausgeführt werden soll, in diesem Fall die Installation eines oder mehrerer Pakete (in diesem Fall firefox und thunderbird). Wir nennen diesen ersten Teil Targeting.

Aufbau der Befehle

Die Befehle, die mit opus abgesetzt werden können, haben folgenden Aufbau:

opus [options] <targets> <action> <parameters>

Einige Befehle benötigen keine Target-Angabe, an diesen Stelle ist dann ein leeres Target in Form von ‚‘ anzugeben.

Konfiguration

[DEFAULT]
depot = my_opsi

[my_opsi]
url = https://my_opsi.de:4447/rpc
username = adminuser
password = geheim

[uib]
url = https://opsi.uib:4447/rpc
username = User
password = Passwort

opus -i|–info listet alle Depots auf.

Das Default-Depot wird für alle Operationen genommen.

Targeting

Folgende Möglichkeiten für die Auswahl von Clients stehen zur Verfügung:

ID

Angabe der Client-ID; hier wird der erste Teil des Namens (bis zum ersten Punkt) berücksichtigt

Globbing, bspw. uwiw-*

Der Stern * wählt alle bekannten (bzw. für den verwendeten opsi-Account sichtbaren) opsi-Clients aus, uwiw-* alle mit dem Präfix uwiw-.

Regulärer Ausdruck: E@uwiw-.*

Wertet die Zeichen nach E@ als regulären Ausdruck aus, um Clients zu spezifizieren.

Gruppe: N@uwiw

Wählt Clients der in opsi definierten Gruppe uwiw aus (Gruppen können bspw. über die opsi-Webschnittstelle definiert werden).

Liste von Clients: L@id1,id2

Liste von Client-IDs

Die meisten Shells erfordern die Verwendung von einfachen Anführungszeichen, um das Shell-eigene Globbing und die Verarbeitung Zeichen wie @ auszuschalten:

opus 'L@uwiw-31344,3asww.wiwi.uni-bielefeld.de' install ...

Aktionen

Für die tägliche Arbeit stehen folgende Aktionen zur Verfügung:

install <Paket(e)>

Paket(e) installieren; ist das Paket schon installiert, wird geprüft, ob es aktualisiert werden kann. –now startet die Installation sofort und nicht erst beim nächsten Neustart; -f|–force erzwingt die Installation, auch wenn das Paket schon auf dem Client vorhanden ist.

Beispiel:

opus 'uwiw-*' --now install firefox
uninstall <Paket(e)>

Paket(e) deinstallieren. –now startet die Deinstallation sofort.

Beispiel:

opus 'uwiw-*' --now uninstall office
update [<Paket(e)>]

Paket(e) aktualisieren. Werden keine Pakete angegeben, dann werden alle verfügbaren Updates installiert.

Beispiel:

opus 'uwiw-*' update libreoffice
failed:

TODO

shutdown

Client(s) ausschalten

Beispiel:

opus '*' shutdown
reboot

Client(s) neu starten

Beispiel:

opus '*' reboot
list

Listet Client-ID, letzte bekannte IP-Adresse und LastSeen-Datum auf

Beispiel:

opus 'uwiw-*' list
details

Details zu Client(s) ausgeben (IP-Adresse, Last Seen und installierte Pakete)

Beispiel:

opus 'uwiw-*' details
updatable

TODO

ondemand

Aktionen, die sonst erst bei Start/Shutdown ausgeführt werden, sofort starten

Beispiel:

opus 'uwiw-*' ondemand
packages

Im Depot verfügbare Pakete auflisten. Das Targeting wird hierbei nicht ausgewertet.

Beispiel:

opus '*' packages
groups

Client-Gruppen auflisten. Das Targeting wird hierbei nicht ausgewertet. Wird keine Obergruppe angegeben, enthält die Liste alle Gruppen; Untergruppen werden ebenfalls aufgelistet.

Beispiel:

opus '*' groups
opus '*' groups uwiw
members (Alias für list)

Clients einer bestimmten Gruppe auflisten. Wird keine Gruppe angegeben, enthält die Rückgabe alle Clients.

Beispiel:

opus '*' members
opus '*' members uwiw
addToGroup

Clients einer bestimmten Gruppe zuordnen. Die per Targeting erfassten Clients werden der angegebenen Gruppe zugeordnet. Eine mehrmalige Anwendung ist möglich und führt nicht zu Dubletten in den Gruppen.

Beispiel:

opus 'uwiw-*' addToGroup uwiw
productgroups

TODO

productgroupmembers

TODO

os_version

Gibt Namen und Version des Betriebssystems aus. Das erfordert ein zuvor gelaufenes swdaudit auf den opsi-Clients.

Bei einer Migration von anderen Deployment-Systemen wie Ivanti gibt es zusätzlich einige hilfreiche Werkzeuge:

unpackaged

Listet Software auf den übergebenen Clients auf, die nicht über opsi installiert wurde, sondern anderweitig (manuell, andere Deployment-Systeme).

Beispiel:

opus 'uwiw-*' unpackaged
fresh

TODO

migratable

Listet Software auf den übergebenen Clients auf, für die ein opsi-Paket im Depot vorhanden ist.

migrate

Setzt auf den übergebenen Clients die migrierbaren Pakete auf installed. Damit werden sie beim nächsten Update-Zyklus berücksichtigt.

Der Status eines Pakets kann auch manuell geändert werden:

set_installed

Setzt auf den übergebenen Clients den Status der übergebenen Pakete auf installed.

set_notinstalled

Setzt auf den übergebenen Clients den Status der übergebenen Pakete auf installed.

Beispiel für einen typischen Workflow

  1. opsi Client Agent installieren; ID des Clients notieren

  2. verfügbare Pakete auflisten:

    opus '' packages | sort | less
    
  3. Pakete installieren:

    opus <client> install uwiw-sophos o4i_firefox-esr
    
  4. Pakete aktualisieren:

    opus <client> update [packages]
    

Optionen

-v, --verbosity LVL  Either CRITICAL, ERROR, WARNING, INFO or DEBUG.
--version            Show the version and exit.
-c, --conf TEXT      path to config file
-i, --info           print information about server connection and exit
--now                start action immediately
-f, --force          force installation
-d, --depot TEXT     depot name; use -i for a list of configured depots
-s, --csv            print output as as CSV (separator is ;)
--help               Show this message and exit.