Разве ansible-playbook -e "sudo=no" не должен переопределять sudo: true в моем плейбуке?

Разве ansible-playbook -e "sudo=no" не должен переопределять sudo: true в моем плейбуке?

Когда я авторизируюсь как пользователь без sudo, я хочу переопределить playbook sudo.

---
name: test
hosts: foo
sudo: yes

Если я сделаю:

ansible-playbook test.yml -e "sudo=no"

Он не переопределяется должным образом, вместо этого мне приходится удалять sudo: yesиз моего плейбука. Не должно sudo=noработать?

решение1

sudoне является переменной; это директива. С помощью -eпараметра командной строки вы определили переменную, которая называется sudo, но это не имеет отношения к делу. Вероятно, это сработало бы, если бы вы сделали это в своей книге сценариев:

sudo: "{{ sudo }}"

или, может быть

sudo: "{{ sudo | default('yes') }}"

Но если вы решите сделать что-либо из вышеперечисленного, не называйте переменную sudo, это может вызвать путаницу; назовите ее must_sudoкак-нибудь иначе.

Связанный контент