Ansible-playbook -e "sudo=no" não deveria substituir sudo: true no meu manual?

Ansible-playbook -e "sudo=no" não deveria substituir sudo: true no meu manual?

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: yesdo meu manual. Não deveria sudo=nofuncionar?

Responder1

sudonão é uma variável; é uma diretriz. Com o -eparâ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_sudoou algo assim.

informação relacionada