gpt4 book ai didi

python - Ansible 将变量写入 YAML 文件

转载 作者:太空狗 更新时间:2023-10-29 20:10:50 26 4
gpt4 key购买 nike

我有一个特定的 ansible 变量结构,我想将其从保险库中获取到主机上的 yaml 文件中。

让我们假设这样的结构:

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

我需要类似“通用”模板的东西来输出目前包含的任何“ secret ”,因为内容几乎完全根据当前环境发生变化。

我能想到的最简单的解决方案是在这样的模板中输出整个结构:

# config/secrets.yml
{{ secrets | to_yaml }}

但是 jinja2 to_yaml 过滤器只对第一层进行“yamlify”,更深的嵌套在 json 中输出。

我能以某种方式解决这个问题吗?有没有更简单的方法来实现我想要的?

感谢您的帮助!

最佳答案

  1. 正如 jwodder 所说,它是有效的。

  2. 如果您使用的是 to_yaml(而不是 to_nice_yaml),那么您安装的 ansible 相当旧,是时候升级了。

  3. 使用to_nice_yaml

  4. 可以将您自己的 kwargs 传递给过滤函数,这些函数通常将它们传递给底层 python 模块调用。喜欢this one对于你的情况。所以像这样:

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

唯一的问题是您不能覆盖 indent=4, allow_unicode=True, default_flow_style=False

请注意,indent 现在可以被覆盖,至少从 Ansible 2.2.0 开始是这样(我用它来缩进 2 个空格以遵循一个项目的编码标准)。

可以找到关于 to_nice_yaml 的更好文档 here .

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com