Quando eu autentico com um usuário não sudo, quero substituir o sudo do playbook.
---
name: test
hosts: foo
sudo: yes
Se eu fizer:
ansible-playbook test.yml -e "sudo=no"
Ele não é substituído corretamente; em vez disso, tenho que removê-lo sudo: yes
do meu manual. Não deveria sudo=no
funcionar?
Responder1
sudo
não é uma variável; é uma diretriz. Com o -e
parâmetro de linha de comando você definiu uma variável chamada sudo
, mas isso não está relacionado. Provavelmente funcionaria se você fizesse isso em seu manual:
sudo: "{{ sudo }}"
ou talvez
sudo: "{{ sudo | default('yes') }}"
Mas se você optar por fazer alguma das opções acima, não nomeie a variável sudo
, pois será confuso; nomeie-o must_sudo
ou algo assim.