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¶
opsi Client Agent installieren; ID des Clients notieren
verfügbare Pakete auflisten:
opus '' packages | sort | less
Pakete installieren:
opus <client> install uwiw-sophos o4i_firefox-esr
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.