ansible-playbook -e "sudo=no" はプレイブック内の sudo: true を上書きするべきではないでしょうか?

ansible-playbook -e "sudo=no" はプレイブック内の sudo: true を上書きするべきではないでしょうか?

非 sudo ユーザーで認証する場合、プレイブックの 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、何か他のものを使用してください。

関連情報