Когда я авторизируюсь как пользователь без 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
как-нибудь иначе.