Ansible-Berechtigungserweiterung einmal pro Spiel

Ansible-Berechtigungserweiterung einmal pro Spiel

Ich verwende Ansible'sbecomeFunktionalität, um Spiele mit einem anderen Benutzer auszuführen. Hier ist ein Beispiel für mein site.yml:

- hosts: webserver
  remote_user: ansible_user
  become: true
  roles:
    - role_a
    - role_b

Dies funktioniert wie erwartet: Ansible verwendet ansible_userzum Herstellen einer Verbindung webserverund sudoführt anschließend die Aufgaben in den definierten Rollen als aus . Es wird jedoch einmal pro Aufgabe in jeder der Rollen rootausgeführt , was zu einem erheblichen Mehraufwand führt, da die Ausführung ziemlich langsam ist.sudosudo

Wie konfiguriere ich Ansible, um seine becomeKonfiguration einmal pro Spiel statt einmal pro Aufgabe anzuwenden?

Antwort1

Eine Rechteausweitung kann nur einmal pro Spiel durchgeführt werden, indemMitogen für Ansible.

Aus ihrer Dokumentation:

Pro Ziel wird eine Verbindung verwendet, zusätzlich zu einem Sudo-Aufruf pro Benutzerkonto. Dies ist viel besser als SSH-Multiplexing in Kombination mit Pipelining, da zwischen den Schritten wichtige Zustände im RAM aufrechterhalten werden können und Systemprotokolle nicht mit wiederholten Authentifizierungsereignissen überflutet werden.

Mitogen bietet außerdem zusätzliche Leistungsvorteile beim Ausführen von Spielen, beispielsweise die Wiederverwendung von Python-Interpretern.

Es ist jedoch nicht mit allen Ansible-Konfigurationen kompatibel, da es wesentliche Teile von Ansible ersetzt! In der Dokumentation finden SieBemerkenswerte Unterschiede zu Vanilla Ansible, von denen einige möglicherweise Änderungen an den Spielbüchern erfordern oder die Verwendung völlig unmöglich machen.

verwandte Informationen