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或其他什么。

相关内容