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

相關內容