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

8

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

Der Foo-Benutzer hat keinerlei Sudo-Berechtigungen, daher muss ich mich als Root anmelden, um privilegierte Befehle auszuführen. Ich verwende tatsächlich ein Expect-Skript, um diesen Job zu erledigen (SSH-Anmeldung als foo, Anmeldung als root über su) und möchte zu Ansible wechseln. Ich weiß, dass ich einen neuen Benutzer erstellen und ihm Sudo-Berechtigungen oder grundsätzlich Sudo-Berechtigungen für foo erteilen kann. Ist es jedoch möglich, dasselbe zu tun, was ich mit Ansible erwarte?

Ich möchte die ssh-Verbindung als foo herstellen und dann Playbooks oder jede Art von Ad-hoc-Befehl als root ausführen. Ich habe in der Ansible-Dokumentation keine Informationen dazu gefunden, daher frage ich hier, ob jemand diese Art von Befragung bereits hatte.

Arka
quelle

Antworten:

13

Mit ansiblekönnen Sie verwenden sudooder su:

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

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

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

Diese Funktionalität ist seit dieser Pull-Anforderung verfügbar und ist in der aktuellen Version 1.6.6 vorhanden.

dawud
quelle
1
Vielen Dank. Wie können Sie für jeden Host ein anderes su-Passwort haben? ansible_su_pass existiert nicht
Arka
Haben Sie herausgefunden, wie Sie einen ansible su pass wählen können?
Jeremyieca
Ab Ansible 1.9.4 können Sie nicht für jeden Host unterschiedliche Kennwörter haben. Sie können jedoch verschiedene SSH-Schlüssel haben.
bschlueter