我有一个特定的可转换变量结构,我想从保管库中获取到主机上的一个yaml文件。
假设一个这样的结构:

secrets:
   psp1:
     username: this
     password: that
   secret_key: 123
  ...

我需要一个类似“通用”模板的东西来输出当前“秘密”包含的内容,因为内容几乎完全基于当前环境进行更改。
我能想到的最简单的解决方案是在这样的模板中输出整个结构:
# config/secrets.yml
{{ secrets | to_yaml }}

但是jinja2-to-uyaml过滤器只“yamlify”第一级,在json中输出更深的嵌套。
我能解决这个问题吗?有没有更简单的方法来实现我想要的?
谢谢你的帮助!

最佳答案

正如杰沃德所说,它是有效的。
如果您使用的是Ansible,那么现在是升级的时候了。
使用to_yaml
可以将自己的Kwarg传递给过滤函数,而过滤函数通常传递给底层的python模块调用。比如你的案子。比如:

{{ secrets | to_nice_yaml( width=50, explicit_start=True, explicit_end=True) }}

唯一需要注意的是你不能覆盖to_nice_yaml

关于python - Ansible将变量写入YAML文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28963751/

10-11 10:41