Remote Client Administration: Eine Einführung zu Client Aktionen mit opsi-cli

Remote Client Administration: Eine Einführung zu Client Aktionen mit _opsi-cli_

Installationen anfordern mit opsi-cli

Das Kommandozeilenwerkzeug opsi-cli ist für Linux, Windows und macOS verfügbar. Es funktioniert als Client-Komponente innerhalb wie außerhalb des opsi-Servers und kommuniziert über den opsi-webservice und opsi-messagebus. opsi-cli ist wirklich nützlich in Situationen, in denen Sie keine grafische Benutzeroberfläche verwenden möchten, wie den opsi-configed oder die Web-GUI. Der opsi-cli Befehl client-action bietet eine bequeme Möglichkeit, Installationen für Clients anzufordern über den Befehl set-action-request.

Schauen wir uns ein erstes Beispiel an. Der folgende Befehl setzt die Aktionsanfrage setup (Standardwert) für die Pakete hwaudit und swaudit auf allen Clients:

opsi-cli client-action --clients=all set-action-request --products=hwaudit,swaudit

Es ist einfach, den Pool der betroffenen Clients zu begrenzen. Verwenden Sie entweder --clients oder --client-groups und geben Sie eine Liste von durch Kommas getrennten Einträgen an. Das nächste Beispiel setzt die Aktionsanfrage nur für opsi-Clients, die zur Gruppe testgroup gehören:

doerrer@me:~$ opsi-cli -l 5 client-action --client-groups=testgroup set-action-request --products=hwaudit
[5] [2023-03-01 12:16:23.922] [               ] Selected clients: ['client-linux.domain.local', 'client-win10.domain.local']   (client_action_worker.py:56)
[5] [2023-03-01 12:16:23.972] [               ] Handling products ['hwaudit']   (set_action_request_worker.py:120)
[5] [2023-03-01 12:16:23.982] [               ] Setting 'setup' ProductActionRequest: hwaudit -> client-linux.domain.local   (set_action_request_worker.py:158)
[5] [2023-03-01 12:16:23.982] [               ] Setting 'setup' ProductActionRequest: hwaudit -> client-win10.domain.local   (set_action_request_worker.py:158)

Tip

Um diese Nachrichten in der Konsole zu sehen, benötigen wir loglevel 5 (oder höher) welches über den Schalter -l gesetzt wird.

Sie können die Art der Aktionsanfrage mit dem Parameter --request-type festlegen. Wie bereits erwähnt, ist der Standard setup. Um eine Aktionsanfrage zurückzusetzen, verwenden Sie --request-type=none. Dies ist nützlich, wenn Sie versehentlich gesetzte Aktionsanfragen entfernen möchten. Der Screenshot veranschaulicht dies: Die erste Aktionsanfrage ist setup für das localboot-Produkt opsi-client-agent auf dem opsi-Client client-linux.domain.local, gefolgt von einem Befehl, der dies mit --request-type=none widerruft. Der dritte Befehl setzt die Aktionsanfrage für einen Windows-Client.

opsi-cli ermöglicht es, client-Aktionen anzufordern von Ihrer linux, macos oder windows Maschine

Pakete auf Clients aktuell halten

Sie können set-action-request auch für komplexere Aufgaben verwenden. Der Parameter --where-outdated betrifft alle auf einem Client installierten Produkte, für die auf dem zugehörigen Depot eine neuere Version vorliegt. Auf diese Weise können Sie opsi-cli client-action verwenden, um zu erreichen, dass die Software auf den Clients auf dem neuesten Stand ist. Sie können die folgenden Parameter verwenden, um die Clients auszuwählen:

  • --clients: Komma-getrennte Liste von Clients oder all
  • --client-groups: Komma-getrennte Liste von Client-Gruppen
  • --exclude-clients: Clients, die ausgeschlossen werden sollen
  • --exclude-client-groups: Client-Gruppen, die ausgeschlossen werden sollen

Das folgende Beispiel demonstriert, wie man alle veralteten Produkte auf setup setzt, für alle Clients mit Ausnahme derer, in der Gruppe testgroup:

opsi-cli -l 5 client-action --clients=all --exclude-client-groups=testgroup set-action-request --where-outdated

Analog können Sie spezifische Produkte oder Produktgruppen mit --products, --product-groups, --exclude-products und --exclude-product-groups ein- bzw. ausschließen.

Tip

Einige Produkte sind automatisch ausgeschlossen von diesen Aufrufen (sämtliche netboot-Produkte, sowie opsi-script, opsi-auto-update, windomain, usw.)

Fehlgeschlagene Installationen wiederholen

Analog können Sie die Installation von Produkten mit dem Parameter --where-failed erneut anfordern. Es setzt eine neue Aktionsanfrage für alle Produkte, die den Status failed haben.

Das folgende Beispiel setzt das Produkt runastest auf setup auf allen Clients, bei denen die vorherige Installation fehlgeschlagen ist:

doerrer@me:~$ opsi-cli -l 5 client-action --clients=all set-action-request --where-failed --products=runastest
[5] [2023-03-01 13:58:52.715] [               ] Selected clients: ['client-linux.domain.local', 'client-macos.domain.local', 'client-win10.domain.local']   (client_action_worker.py:56)
[5] [2023-03-01 13:58:52.777] [               ] Handling products ['runastest']   (set_action_request_worker.py:120)
[5] [2023-03-01 13:58:52.788] [               ] Setting 'setup' ProductActionRequest: runastest -> client-win10.domain.local   (set_action_request_worker.py:158)

Dies ist nützlich in Testumgebungen oder falls Abhängigkeiten fehlten, als das Produkt zum ersten Mal installiert wurde.

Tips & Tricks für client-action

Abschließend haben wir noch einige Tipps und Tricks für Sie gesammelt:

  • Wenn Sie mehr über die verfügbaren Optionen eines Befehls erfahren möchten, rufen Sie ihn mit dem Parameter --help auf.
  • Sie können cron verwenden, um einen Zeitplan für opsi-cli Befehle auf einem Linux-Server einzurichten (siehe Kapitel Planung von Installationen).
  • Wenn Sie eigene Skripte geschrieben haben, um regelmäßig Pakete in Ihrem Depot zu aktualisieren, können Sie einfach opsi-cli client-action set-action-request --where-outdated einfügen, um das Update auf Ihren Clients anzufordern.
  • Für eine vollständige Liste der Befehle, Parameter und Optionen lesen Sie bitte unsere Dokumentation (siehe Kapitel opsi Befehlszeilenwerkzeuge und Prozesse).

Frohes basteln!

Verwandte Beiträge

Neue opsi-Basislizenz: Kostenpflichtige Erweiterungen für 30 Clients gratis

Neue opsi-Basislizenz: Kostenpflichtige Erweiterungen für 30 Clients gratis

Erweitern Sie Ihre opsi-Umgebung mit unserer neuen Basislizenz! Sie können ab sofort alle kostenpflichtigen Erweiterungen auf bis zu 30 Clients kostenlos installieren. Dieser Artikel gibt einen Überblick über die neue opsi-Lizenz.

Mehr lesen
Die opsiconf 2022 in Mainz: opsiconf ahoi!

Die opsiconf 2022 in Mainz: opsiconf ahoi!

Am 2. und 3. Juni 2022 fand die dritte opsiconf in Mainz statt. Ein Bericht von Heike Jurzik.

Mehr lesen
Vom leeren Büro zum vollen Einsatz

Vom leeren Büro zum vollen Einsatz

24 Jahre opsi. Ute Hahn-Klimroth blickt mit mir auf die Geschichte von opsi zurück.

Mehr lesen