Ansible - 将变量指向保险库中变量的语法
Ansible - Syntax to point a variable to a variable in a vault
尝试使用 ansible-vault 来保存敏感密码,但我找不到正确的语法来在 playbook 中检索它。
doc 提到(强调我的):
Next, copy all of the sensitive variables over to the vault file and prefix these variables with vault_. You should adjust the variables in the vars file to point to the matching vault_ variables using jinja2 syntax, and ensure that the vault file is vault encrypted.
我创建了保险库,但我对 yml 中的 jinja2 真的不够熟悉,无法找到 vars.yml 文件的正确语法。
任何人都可以帮助了解如何在剧本中指向变量 'X' 以获取保险库文件中变量 "vault_X" 的值的语法?
您能不能尝试使用 import_vars 模块将存储在加密文件中的 vars 导入到您的 playbook 中?然后在剧本本身中,您可以像往常一样引用它们。您只需要添加
--ask-vault-pass
当运行你的剧本时。
这是一个较老的问题,但我对同一件事很好奇。我在 Ansible 文档中找不到它,所以我按照这个 tutorial 找到了一个解决方案,它比文档提供了更多信息。
jinja2 语法是:"{{ [var_name] }}"
(带引号)。这在实践中是什么样子的:
vault.yml 文件的内容为:
---
#vault.yml
vault_ex_pw: password
与您的 vars.yml 文件位于同一目录中,语法为:
---
#vars.yml
ex_pw: "{{ vault_ex_pw }}"
这应该会给你想要的结果,我相信这是 "best practice" Ansible 文档所引用的。请注意,您需要在 playbook 的某处引用这些 var 文件,以便 jinja2 变量指向有效(否则您将收到错误:The error was: 'vault_ex_pw' is undefined
)。一种方法是:
#ex_playbook.yml
[your code here]
vars_files:
- /path/to/ansible/directory/group_vars/vars.yml
- /path/to/ansible/directory/group_vars/vault.yml
尝试使用 ansible-vault 来保存敏感密码,但我找不到正确的语法来在 playbook 中检索它。
doc 提到(强调我的):
Next, copy all of the sensitive variables over to the vault file and prefix these variables with vault_. You should adjust the variables in the vars file to point to the matching vault_ variables using jinja2 syntax, and ensure that the vault file is vault encrypted.
我创建了保险库,但我对 yml 中的 jinja2 真的不够熟悉,无法找到 vars.yml 文件的正确语法。
任何人都可以帮助了解如何在剧本中指向变量 'X' 以获取保险库文件中变量 "vault_X" 的值的语法?
您能不能尝试使用 import_vars 模块将存储在加密文件中的 vars 导入到您的 playbook 中?然后在剧本本身中,您可以像往常一样引用它们。您只需要添加
--ask-vault-pass
当运行你的剧本时。
这是一个较老的问题,但我对同一件事很好奇。我在 Ansible 文档中找不到它,所以我按照这个 tutorial 找到了一个解决方案,它比文档提供了更多信息。
jinja2 语法是:"{{ [var_name] }}"
(带引号)。这在实践中是什么样子的:
vault.yml 文件的内容为:
---
#vault.yml
vault_ex_pw: password
与您的 vars.yml 文件位于同一目录中,语法为:
---
#vars.yml
ex_pw: "{{ vault_ex_pw }}"
这应该会给你想要的结果,我相信这是 "best practice" Ansible 文档所引用的。请注意,您需要在 playbook 的某处引用这些 var 文件,以便 jinja2 变量指向有效(否则您将收到错误:The error was: 'vault_ex_pw' is undefined
)。一种方法是:
#ex_playbook.yml
[your code here]
vars_files:
- /path/to/ansible/directory/group_vars/vars.yml
- /path/to/ansible/directory/group_vars/vault.yml