Ansible

Die Ansible Become-Anweisung zum Ausführen von Befehlen als angegebener Benutzer

Die Ansible Become-Anweisung zum Ausführen von Befehlen als angegebener Benutzer

Mit Ansible können Sie verschiedene Operationen auf Remote-Rechnern mit Rohbefehlen oder Ansible-Playbooks ausführen. Standardmäßig wird ein Ansible-Playbook auf dem Remote-Host als derselbe Benutzer auf dem Ansible-Controller ausgeführt. Das heißt, wenn Sie einen Befehl als anderer Benutzer auf dem Remote-Rechner ausführen müssen, müssen Sie ihn explizit in Ihrem Ansible-Playbook angeben.

Um die Funktionalität zum Ausführen von Befehlen als anderer Benutzer zu implementieren, müssen Sie die Sudo-Funktion verwenden, die in Linux-Systemen verfügbar ist. Die Ansiblewer-Direktive ermöglicht es Ihnen, Befehle als der angegebene Benutzer auszuführen.

Die Informationen des Benutzers werden in einem Ansible-Playbook unter Verwendung der Variablen von "werde_pass" angegeben, um das Kennwort des Benutzers "werde_user" anzugeben und anzugeben, welcher Benutzer den Befehl ausführen kann.

So führen Sie Ansible Tasks als Root aus

Um einen bestimmten Befehl als Root-Benutzer in Ansible auszuführen, können Sie die Anweisung "werde" implementieren und den Wert auf "true" setzen.' Dadurch wird Ansible angewiesen, beim Ausführen des Befehls sudo ohne Argumente zu implementieren.

Betrachten Sie beispielsweise ein Ansible-Playbook, das das MySQL-Server-Paket aktualisiert und es dann neu startet. Im normalen Linux-Betrieb müssten Sie sich als Root-Benutzer anmelden, um solche Aufgaben auszuführen. In Ansible können Sie einfach die Anweisung "were: yes" aufrufen, wie unten gezeigt:

- Gastgeber: alle
werden: ja
Aufgaben:
- name: Ansible als root ausführen und sys aktualisieren
lecker:
Name: mysql-server
Zustand: aktuell
- Name:
Bedienung.Bedienung:
Name: mysqld
Zustand: neu gestartet

Im obigen Playbook haben wir die Anweisung „were“ verwendet und den Benutzer „werde_user“ nicht angegeben, da alle Befehle unter der Anweisung „werde“ standardmäßig als Root ausgeführt werden.

Dies ist vergleichbar mit der Angabe wie folgt:

- Gastgeber: alle
werden: ja
werde_user: root
Aufgaben:
- name: Ansible als root ausführen und sys aktualisieren
lecker:
Name: mysql-server
Zustand: aktuell
- Name: Dienst.Bedienung:
Name: mysqld
Zustand: neu gestartet

So führen Sie Ansible-Aufgaben als Sudo aus

Um eine Ansible-Aufgabe als einen bestimmten Benutzer anstelle des normalen Root-Benutzers auszuführen, können Sie die be_user-Direktive verwenden und den Benutzernamen des Benutzers übergeben, um die Aufgabe auszuführen. Dies ist vergleichbar mit der Verwendung des Befehls sudo -u in Unix.

Um die be_user-Direktive zu implementieren, müssen Sie zuerst die werden-Direktive aktivieren, da die be_user-Direktive ohne diese Direktive unbrauchbar ist.

Betrachten Sie das folgende Playbook, in dem der Befehl als der Benutzer none ausgeführt wird.

- name: Führe einen Befehl als ein anderer Benutzer aus (niemand)
Befehl: ps aux
wahr werden
be_method: su
werde_user: niemand
werden_flags: '-s /bin/bash'

Im obigen Playbook-Snippet haben wir die Anweisungen „werde“, „werde_user“ und „andere werden“ implementiert.

  1. werde_methode: Dies legt die Methode zur Rechteausweitung fest, z. B. su oder sudo.
  2. be_user-Direktive: Dies gibt den Benutzer an, als den der Befehl ausgeführt werden soll; das bedeutet nicht: ja.
  3. wer_flags: Dies setzt die Flags, die für die angegebene Aufgabe verwendet werden sollen.

Sie können das obige Playbook jetzt mit dem ansible-playbook-Dateinamen ausführen.yml und seht euch das Ergebnis selbst an. Für Aufgaben mit einer Ausgabe müssen Sie möglicherweise das Debug-Modul implementieren.

So führen Sie Ansible mit Passwort aus

Um eine wer-Anweisung auszuführen, die ein Kennwort erfordert, können Sie Ansible anweisen, beim Aufrufen des angegebenen Playbooks nach einem Kennwort zu fragen.

Um beispielsweise ein Playbook mit einem Passwort auszuführen, geben Sie den folgenden Befehl ein:

ansible-playbook wird_pass.yml --ask-become-pass

Sie können auch das Flag -K angeben, das ähnliche Operationen wie der obige Befehl ausführt. Beispielsweise:

ansible-playbook wird_pass.yml -K

Nach der Festlegung werden Sie bei der Ausführung der Aufgaben zur Eingabe eines Kennworts aufgefordert.

HINWEIS: Sie können die werden-Direktive auch in Ansible AD HOC-Rohbefehlen mit dem Flag -b verwenden -. Weitere Informationen finden Sie in der folgenden Dokumentation:

https://linkfy.zu/werdenDokumentation

Fazit

Nachdem Sie diesen Artikel gelesen haben, sollten Sie nun wissen, wie Sie die Ansible BECOME-Direktive verwenden, um eine Rechteeskalation für verschiedene Aufgaben durchzuführen.

Aus Sicherheitsgründen ist es besser, Einschränkungen für verschiedene Konten zu implementieren und explizit anzugeben, wann diese verwendet werden. Die Rechteeskalation ist also ein wichtiger Aspekt bei der Verwendung von sudo und su in Ansible.

So verwenden Sie AutoKey zur Automatisierung von Linux-Spielen
AutoKey ist ein Desktop-Automatisierungsdienstprogramm für Linux und X11, programmiert in Python 3, GTK und Qt. Mithilfe der Skript- und MACRO-Funktio...
So zeigen Sie den FPS-Zähler in Linux-Spielen an
Linux-Gaming bekam einen großen Schub, als Valve 2012 die Linux-Unterstützung für den Steam-Client und seine Spiele ankündigte. Seitdem haben viele AA...
Herunterladen und Spielen von Sid Meier's Civilization VI unter Linux and
Einführung in das Spiel Civilization 6 ist eine moderne Version des klassischen Konzepts, das in der Reihe der Age of Empires-Spiele eingeführt wurde....