.. _erste_schritte:
Erste Schritte
==============
opus bietet eine ähnliche Befehlszeilen-Syntax wie `Saltstack
`_. Ein Beispiel:
.. code-block:: bash
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]
Einige Befehle benötigen keine Target-Angabe, an diesen Stelle ist dann ein
leeres Target in Form von `''` anzugeben.
Konfiguration
-------------
.. code-block:: ini
[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:
.. code-block:: bash
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) 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) deinstallieren. `--now` startet die Deinstallation sofort.
Beispiel::
opus 'uwiw-*' --now uninstall office
`update []`
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 install uwiw-sophos o4i_firefox-esr
4. Pakete aktualisieren::
opus 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.