为什么将ansible vault密码添加到模块args?

为什么将ansible vault密码添加到模块args?,ansible,ansible-vault,Ansible,Ansible Vault,当我运行ansible剧本时 ansible-playbook --ask-vault-pass -i vdc-inventory complete_provision.yaml -vvv 我设置的密码将发送到所有模块参数: changed: [localhost] => { "changed": true, "invocation": { "module_args": { ... "org": "syste

当我运行ansible剧本时

ansible-playbook --ask-vault-pass -i vdc-inventory complete_provision.yaml -vvv
我设置的密码将发送到所有
模块参数

changed: [localhost] => {
    "changed": true,
    "invocation": {
        "module_args": {
            ...
            "org": "system",
            "password": "xxx",
            ...
        }
    },
    "msg": "ABC has been created"
}
这很糟糕。它甚至没有被编辑

更新1

运行playbook时,环境变量设置为:

- hosts: localhost
  connection: local
  environment:
    env_user: "{{ VCD_USER_NAME }}"
    env_password: "{{ VCD_USER_PASSWORD }}"
    env_host: "{{ VCD_URL }}"

它们实际上是模块参数…

如果您只想确保密码不会显示在输出中,并且模块尚未构建以隐藏密码,则可以将其用作模块参数

no_log: True

这将抑制该特定任务的输出。如果您需要能够看到输出,则不太好,但如果标准模块不支持抑制输出,则这可能是您唯一的选择。

它会发送到模块,因为模块可能需要vault文件中的变量。不过,我在调试输出中没有看到它。您使用的是哪个模块?我使用的是一个外部模块…而该密码字段没有显示在常规内置ansible模块上。我想,您可能想在VMware上发现一个问题。哎呀,我更新了这个问题。有没有办法在输出中隐藏该密码?