fragen stichworte

Ansible ssh als Benutzer und Ausführen hat root (erwarten Sie wie)

Ich muss eine wichtige Anzahl von Hosts verwalten, auf die nur ein Benutzer von SSH aus zugreifen kann (nennen wir ihn "foo") und müssen mich dann als root anmelden, um privilegierte Befehle auszuführen.

Der Foo-Benutzer hat keine Sudo-Berechtigungen, daher muss ich mich als root anmelden, um privilegierte Befehle ausführen zu können. Ich verwende tatsächlich ein Expect-Skript, um diesen Job auszuführen (ssh login als foo, log als root über su) und ich möchte zu Ansible wechseln. Ich weiß, ich könnte einen neuen Benutzer erstellen und ihm Sudo-Privilegien geben oder grundsätzlich Foo-Privilegien erteilen, aber ist es möglich, dasselbe zu tun, was ich mit Ansible erwarte?

Ich möchte die SSH-Verbindung als Foo ausführen und dann Playbooks oder einen beliebigen Adhoc-Befehl als Root ausführen. Ich habe dazu keine Informationen in der Ansible-Dokumentation gefunden, daher frage ich hier, ob jemand diese Art von Verhör hatte.

antworten

Mit ansible können Sie sudo oder su:

verwenden  
- hosts: example.com
  gather_facts: False
  su: yes
  su_user: root
  tasks:
    - shell: whoami

Sie können das auch über die Befehlszeile tun:

ansible-playbook --su --su-user=root --ask-su-pass playbook.yml

Diese Funktionalität steht seit dieser Pull-Anforderung zur Verfügung und ist in der aktuellen Version 1.6.6 enthalten.