python - 如何将支柱变量的内容添加到带有 salt 的文件中?

标签 python salt-stack

在 salt state 文件中,如何将 pillar 的内容添加到远程 salt-minion 上的文件?

例如,如果我有像这样的支柱数据:

ssl:
    some-domain.com:
        key:
            -----BEGIN RSA PRIVATE KEY-----
            MIICX... snip ...

在远程 salt-minion 上,我想要一个类似 /etc/nginx/ssl/som-domain.com.key 的文件,其中包含该私钥的内容,如何我会这样做吗?我也乐于接受这样的回答,“你做错了,笨蛋。”只要您能给我一些见解并为我指明正确的方向,就会大有帮助。

我从一些测试中知道 salt 的 file.managedfile.* friend ,但我不确定是否有最好的/首选的方式来添加任意像我尝试做的那样将数据柱化到远程文件。

我仍在学习/研究 salt,所以我还在使用 Yaml + Jinja 进行模板化,如果它对您制定适当的答案很重要的话。

谢谢!

编辑:顺便说一句,当前的 hacky 解决方案是:

在我的 file_root/srv/salt/中创建一个文件,如 /srv/salt/ssl/some-domain.com.key 包含类似 {{ salt[pillar. get]('ssl:some-domain.com:key') }}

但这看起来太老套了。在这里寻找更好的解决方案。

最佳答案

这可以从 file.managed 获得state,虽然不可否认它很容易在文档中遗漏:

# /srv/salt/something.sls
some-domain-key:
  file.managed:
    - name: /etc/nginx/ssl/some-domain.com.key
    - mode: 600
    - contents_pillar: ssl:some-domain.com:key

如果您按照示例建议的方式管理 nginx,您可能还对 nginx.ng formula 感兴趣.它可以为您做到这一点。

关于python - 如何将支柱变量的内容添加到带有 salt 的文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31643621/

相关文章:

python - 如何在无法访问其定义的函数上使用 python 装饰器?

python - Jinja2 映射列表到字典

python-3.x - 如何捕获通过 REST API 执行的 Saltstack `cmd.run` 的返回码

python - 如何让我的代码找到整个列表中最大的字谜组?

python - 暂停和恢复工作在 scrapy 项目中不起作用

ubuntu - 在 Ubuntu 16.04 上禁用 SaltStack master/minion 的自动启动

salt-stack - 我如何在连接时提供 salt minion

salt-stack - Saltstack 在编排中获得一个 minion 的 grains

python - 为什么我的素描课画的是 sec,而不是 cosec 或 cot?

python - scikit learn 中不同数据类型的自定义管道