将 ansible-vault 与提示变量结合起来?

将 ansible-vault 与提示变量结合起来?

我现在遇到的问题是,要使用 ansible-vault 加密字符串,我需要在命令行上指定--vault-id=foo@prompt

我并不经常使用加密字符串,因此我宁愿让我的游戏注意到我将使用加密字符串,并且仅在绝对必要时提示输入密码。

这可能吗?类似于

  vars:
    string1: !vault |
          $ANSIBLE_VAULT;1.2;AES256;foo
          66306438623164653061623661376331643537303931663562326336386234333935373661623261
          3930633662616462316133633236383530356561346233640a386439316638313361333437386435
          38346635626533313266663436666163386238616266623038666364323232393465656665643831
          6437616339616463360a383263333965366264633562343965386137313364613737356666623562
          3033
  vars_prompt:
  - name: "cryptpasswd"
    prompt: "ansible-vault password"
    private: yes
  tasks:
  - name: "secret string"
    debug:
      msg: "secret message is {{ string1 }}"

...然后我的密码是否可以在需要时以某种方式解密字符串?

谢谢。

答案1

您可以使用完全随机的密码字符串并将其添加到密码文件中。

在你的 ansible.cfg 文件中:

vault_password_file = vault_pass.txt

将文件 vault_pass.txt 和你的密码一起添加到你的 ansible 工作目录就完成了。

如果您使用 git,请确保将密码文件添加到您的 .gitignore 文件中。

相关内容