当我使用非 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
或其他什么。