.. _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.