die Ausführung eines Befehls durch den Wechsel zum root-Benutzer in ansible
Arbeite ich an Ansible playbook ausführen einige meiner Aufgaben. In einer meiner Aufgaben, die ich wechseln müssen, um bestimmten Verzeichnis, und führen Sie dann einen Befehl mit sudo, aber ich brauche all diese Dinge zu tun durch den Wechsel zum root-Benutzer zuerst, sonst funktioniert es nicht. So im Allgemeinen das ist, was ich tun, ohne ansible:
david@machineA:/tmp/parallel-20140422$ sudo su
root@machineA:/tmp/parallel-20140422# sudo ./configure && make && make install
Nachdem Sie die obigen Schritte, ich sehe GNU parallel library in meinem system installiert ist korrekt. Aber mit diesen Schritten, mit Ansible, ich sehe nicht, mein GNU library installiert bekommen auf alle.
- name: install gnu parallel
command: chdir=/tmp/parallel-20140422 sudo ./configure && make && make install
Nun meine Frage wie wechsle ich zu root-Benutzer und einen bestimmten Befehl auszuführen. Ich bin mit Ansible 1.5.4 und sieht aus wie ich nicht aktualisieren. Ich habe sogar versucht mit unter, aber es immer noch nicht funktioniert:
- name: install gnu parallel
command: chdir=/tmp/parallel-20140422 sudo ./configure && make && make install
sudo: true
sudo_user: root
Ich bin mit meinem playbook mit nachstehenden Befehl:
ansible-playbook -e 'host_key_checking=False' setup.yml -u david --ask-pass --sudo -U root --ask-sudo-pass
shell
Modul statt command
wenn Sie möchten, um die Ausführung von beliebigen shell-expression. Und warum verwenden sudo
unter root
Konto, Sie haben bereits die maximale Privilegien?ja stimmt auf die Verwendung von sudo, wenn ich bin bereits umgestiegen auf root. Ändern kann ich das Teil nicht verwende sudo nicht mehr ob ich schon haben, wechseln Sie zum root-Benutzer.
Ich weiß, Befehl-Modul ist in Ordnung, bcoz ich überprüft, die für andere Aufgaben und Sie funktionieren.. Irgendwie ist das Thema für diese Aufgabe habe ich wechseln müssen, um root-Benutzer und dann nur ausführen dieses Befehls. Und ich bin mir nicht sicher wie ich es machen kann, mit ansible.
InformationsquelleAutor john | 2017-06-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die
geworden
- Direktive.Zum Beispiel, um einen Dienst zu starten, als root:
können Sie auch weitere Benutzer, wie der apache-Benutzer:
Für Ihren Fall, wird es sein:
InformationsquelleAutor Ortomala Lokni
Aus deinem Kommentar:
command
- Modul könnte arbeiten für andere Befehle, aber in diesem Beispiel verwenden Sie ein shell-syntax (&&
) zum ausführen von mehreren Befehlen. Diese syntax funktioniert nicht in dercommand
Modul (da dieses Modul führt Befehle direkt aus Python und unterstützt keine kombinierten Befehle).Müssen Sie die
shell
- Modul in diesem Fall.InformationsquelleAutor techraf