webentwicklung-frage-antwort-db.com.de

Unterschied zwischen werden und werden_Benutzer in Ansible

Kürzlich habe ich angefangen, mich mit Ansible zu beschäftigen und meine eigenen Spielbücher zu schreiben. Ich habe jedoch Probleme mit dem Verständnis des Unterschieds zwischen become und become_user. So wie ich es verstehe become_user ähnelt su <username> und become bedeuten so etwas wie Sudo su oder "Alle Befehle als Sudo-Benutzer ausführen". Aber manchmal sind diese beiden Richtlinien gemischt.

Könnten Sie die richtige Bedeutung von ihnen erklären?

38
Andrey Rusanov

become_user definiert den Benutzer, der für erweiterte Rechte verwendet wird.

become ist einfach ein Flag, um dasselbe zu aktivieren oder zu deaktivieren.

Hier drei Beispiele, die dies verdeutlichen sollen:

  1. Diese Aufgabe wird als root ausgeführt, da root der Standardbenutzer für die Rechteerweiterung ist:

    - do: something
      become: yes
    
  2. Diese Aufgabe wird als Benutzer someone ausgeführt, da der Benutzer explizit festgelegt ist:

    - do: something
      become: yes
      become_user: someone
    
  3. Diese Aufgabe macht nichts mit become_user, da become nicht festgelegt ist und standardmäßig false/no ist:

    - do: something
      become_user: someone
    

    ... es sei denn, es wurde auf einer höheren Ebene auf true gesetzt, z. ein Block, das Playbook, eine Gruppe oder Host-Vars etc.

    Hier ist ein Beispiel mit einem Block :

    - become: yes
      block:
        - do: something
          become_user: someone
        - do: something
    

    Der erste wird als Benutzer someone ausgeführt, der zweite als root.

So wie ich es verstehe, ist become_user so etwas wie su und become bedeutet so etwas wie sudo su oder "alle Befehle als sudo-Benutzer ausführen".

Der Standard become_method ist Sudo, also Sudo do something oder Sudo -u <become_user> do something

Fineprint: Natürlich ist " do: something " Pseudocode. Setzen Sie dort Ihr aktuelles Ansible-Modul ein.

76
udondan