Wenn ich mich mit einem Nicht-Sudo-Benutzer authentifiziere, möchte ich Playbook-Sudo überschreiben.
---
name: test
hosts: foo
sudo: yes
Wenn ich mache:
ansible-playbook test.yml -e "sudo=no"
Es wird nicht richtig überschrieben, sondern ich muss es sudo: yes
aus meinem Playbook entfernen. Sollte das nicht sudo=no
funktionieren?
Antwort1
sudo
ist keine Variable, sondern eine Direktive. Mit dem -e
Befehlszeilenparameter haben Sie eine Variable definiert, die aufgerufen wird sudo
, aber das hat nichts damit zu tun. Es würde wahrscheinlich funktionieren, wenn Sie dies in Ihrem Playbook tun würden:
sudo: "{{ sudo }}"
oder vielleicht
sudo: "{{ sudo | default('yes') }}"
Wenn Sie sich jedoch für eine der oben genannten Möglichkeiten entscheiden, geben Sie der Variable nicht den Namen sudo
, da dies verwirrend sein könnte. Geben Sie ihr einen Namen must_sudo
oder so etwas.