我有 2 个包含私钥的 jinja 模板:
private.key
(加密)private-copy.key
(需要包含private.key的内容)private.key
文件使用 ansibleVault 进行加密,例如
ansible-vault encrypt --vault-password-file ~/.pass.txt private.key
所以它的内容看起来像这样:
$ANSIBLE_VAULT;1.1;AES256
123456789[...]
我正在尝试获取
private.key
的解密内容
-----BEGIN RSA PRIVATE KEY-----
ABCDEfgh[...]
-----END RSA PRIVATE KEY-----
内部
private-copy.key
(而不是其加密值)。
我已经尝试了里面的 include jinja 语句
private-copy.key
:
{% include "private.key" %}
但是结果给了我
private-copy.key
中的加密值,而不是private.key
中的解密内容。
我还知道我可以使用加密的变量并将其放入 private-copy.key 而不是包含加密文件。为了简单起见,我想直接使用加密文件(在证书续订时,我们得到一个文件,我只想直接使用它)。
使用文件查找插件:Ansible 允许您使用 Lookup('file', ...) 插件读取文件的内容。当与加密文件的 ansible-vault 结合使用时,如果文件被加密,它会自动解密内容。
{% raw %}
# This is private-copy.key
{{ lookup('file', 'private.key') }}
{% endraw %}