在 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.managed
和 file.*
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/