我有一个特定的ansible变量结构,我想从Vault中获取我的主机上的yaml文件.
让我们假设一个这样的结构:
secrets:
psp1:
username: this
password: that
secret_key: 123
...
Run Code Online (Sandbox Code Playgroud)
我需要类似"通用"模板的东西来输出当前包含的任何"秘密",因为内容几乎完全基于当前环境而变化.
我能想到的最简单的解决方案是在模板中输出整个结构,如下所示:
# config/secrets.yml
{{ secrets | to_yaml }}
Run Code Online (Sandbox Code Playgroud)
但jinja2 to_yaml过滤器只对第一级"yamlify"进行了更深层次的嵌套,在json中输出.
我可以以某种方式解决这个问题吗?有没有更简单的方法来实现我想要的?
谢谢你的帮助!
Kas*_*yap 18
to_yaml(而不是to_nice_yaml)你有相当旧的ansible安装,那么升级的时候了.to_nice_yaml可以将自己的kwargs传递给过滤函数,这些函数通常将它们传递给底层的python模块调用.像这样一个对你的情况.所以类似于:
{{ secrets | to_nice_yaml( width=50, explicit_start=True, explicit_end=True) }}
Run Code Online (Sandbox Code Playgroud)
只有抓住你才能覆盖 indent=4, allow_unicode=True, default_flow_style=False
| 归档时间: |
|
| 查看次数: |
15983 次 |
| 最近记录: |