应该不是anaught-playbook -e“sudo = no”覆盖sudo:在我的playbook中是否正确?

当我使用非sudo用户进行身份validation时,我想覆盖playbook sudo。

--- name: test hosts: foo sudo: yes 

如果我做:

 ansible-playbook test.yml -e "sudo=no" 

它没有得到适当的覆盖,而是我必须从我的手册中删除sudo: yes 。 不应该sudo=no工作?

sudo不是一个variables; 这是一个指令。 使用-e命令行参数定义了一个名为sudo的variables,但这是不相关的。 这可能会工作,如果你在你的手册中这样做:

 sudo: "{{ sudo }}" 

或者可能

 sudo: "{{ sudo | default('yes') }}" 

但是,如果你select做上述任何一个,不要命名variablessudo ,这将是混乱的; 命名它must_sudo什么的。