Ansible—将变量指向vault中变量的语法

Ansible—将变量指向vault中变量的语法,ansible,ansible-vault,Ansible,Ansible Vault,试图使用ansible vault保存敏感密码,但我在剧本中找不到正确的语法来检索它 提到(我的重点): 接下来,将所有敏感变量复制到vault文件中,并在这些变量前面加上vault前缀您应该调整vars文件中的变量,以使用jinja2语法指向匹配的vault_uu变量,并确保vault文件是vault加密的 我创建了vault,但我对yml中的jinja2还不够熟悉,无法找到vars.yml文件的正确语法 任何人都可以提供语法帮助,了解如何将剧本中的变量“X”指向vault文件中的变量“vau

试图使用ansible vault保存敏感密码,但我在剧本中找不到正确的语法来检索它

提到(我的重点):

接下来,将所有敏感变量复制到vault文件中,并在这些变量前面加上vault前缀您应该调整vars文件中的变量,以使用jinja2语法指向匹配的vault_uu变量,并确保vault文件是vault加密的

我创建了vault,但我对yml中的jinja2还不够熟悉,无法找到vars.yml文件的正确语法


任何人都可以提供语法帮助,了解如何将剧本中的变量“X”指向vault文件中的变量“vault\u X”的值?

您不能尝试使用导入变量模块将加密文件中存储的变量导入剧本吗?然后在剧本中,你会像平常一样引用它们。你只需要添加

--询问保险库通行证


当运行你的剧本时。

这是一个老问题,但我对同样的事情很好奇。我在Ansible文档中找不到它,所以我按照这个方法制定了一个解决方案,它比文档中的信息要多

jinja2语法是:
“{{[var_name]}}”
(带引号)。这实际上是什么样子的:

对于包含内容的vault.yml文件:

---
#vault.yml
vault_ex_pw: password
在与vars.yml文件相同的目录中,语法为:

---
#vars.yml
ex_pw: "{{ vault_ex_pw }}"
这应该会给你想要的结果,我相信这是Ansible文档引用的“最佳实践”。请注意,您需要在剧本中的某个地方引用这些var文件,以便jinja2变量指向工作(否则您将收到一个错误:
错误是:“vault_ex_pw”未定义
)。一种方法是:

#ex_playbook.yml
[your code here]
  vars_files:
    - /path/to/ansible/directory/group_vars/vars.yml
    - /path/to/ansible/directory/group_vars/vault.yml

5分钟前我就是这样结束的。我试图使用所描述的“最佳实践”,但我就是无法让它发挥作用,所以我在文件本身上添加了变量,并在命令行上询问vault pass。但我仍然很想知道如何在yml文件中使用jinja。