Wie authentifiziere ich einen Benutzer für bestimmte Aufgaben mit Ansible?

Wie authentifiziere ich einen Benutzer für bestimmte Aufgaben mit Ansible?

Ich erhalte die Meldung „Apt konnte nicht für exklusiven Vorgang gesperrt werden“, wenn ich versuche, mit APT und dem Vagrant-Benutzer einige Abhängigkeiten in einem Playbook zu installieren. Ich vermute, dass mir dies angezeigt wird, weil der Vagrant-Benutzer während der Ausführung der Aufgabe nicht authentifiziert werden kann.

Dies ist die Rollendeklaration, die ich verwende.

- name: ruby installer
  hosts: all
  sudo: True
  sudo_user: vagrant
  roles:
  - ruby

Und dies ist die Aufgabe, die fehlschlägt:

    - name: Install ruby building dependencies
      apt: name={{ item }} 
           state=installed 
           update_cache=yes

      with_items:
      - dependency

Beim Entfernen von „update_cache=yes“ und erneuten Ausführen des Playbooks erhalte ich die Meldung: E: Das Administrationsverzeichnis (/var/lib/dpkg/) kann nicht gesperrt werden. Sind Sie Root?

Natürlich funktioniert es einwandfrei, wenn man es als Root ausführt, aber ich muss es aufgrund einiger Ruby-Aufgaben (spezifisch für RVM und RBENV) unter einem anderen Benutzer als Root ausführen.

Wie authentifiziere ich den Vagrant-Benutzer ordnungsgemäß, wenn ich mein Playbook ausführe? Kann mir jemand den richtigen Weg weisen?

Antwort1

Am Ende kam ich zu dieser Rollendeklaration:

- name: ruby installer
  hosts: all
  sudo: True
  user: vagrant
  roles:
  - ruby

Und diese Aufgabe zum Installieren der Abhängigkeiten:

- name: Install ruby building dependencies
  apt: name={{ item }} 
       state=installed 
       update_cache=yes
  sudo_user: root

  with_items:
  -dependency

Es verwendet jetzt Root für die Apt-Aufgabe und Vagrant für die anderen Ruby-Aufgaben im Playbook.

Antwort2

aptinstalliert Pakete auf Systemebene und daher erfordert die Verwendung von apt Root-äquivalente Berechtigungen.

Wenn Sie weitere Schritte zur Anwendungsbereitstellung als anderer Benutzer ausführen müssen, müssen Sie diese Schritte aus Ihrem Deb-Paketinstallationsprozess herausziehen.

verwandte Informationen