在salt状态文件中,如何将支柱的内容添加到远程salt-minion上的文件中?
例如,如果我有支柱数据,如:
ssl:
some-domain.com:
key:
-----BEGIN RSA PRIVATE KEY-----
MIICX... snip ...
在远程salt-minion上,我希望有一个像/etc/nginx/ssl/som-domain.com.key
这样的文件,其中包含该私钥的内容,我该怎么做?我也愿意接受这样一个答案:“你做错了,假的。”只要你给我一些见解并指出我正确的方向,它将会有很大的帮助。
我从一些测试中了解了盐的file.managed
和file.*
朋友,但我不确定是否有一种最佳/首选的方式将任意支柱数据添加到远程文件中,因为我是试图做。
我还在学习/用盐攻击,所以我还在使用Yaml + Jinja进行模板化,如果你在制定合适的答案时很重要。
谢谢!
编辑顺便说一下,目前的hacky解决方案是:
在我的file_root / srv / salt /中创建一个文件,例如包含/srv/salt/ssl/some-domain.com.key
{{ salt[pillar.get]('ssl:some-domain.com:key') }}
但这看起来真是太烂了。在这里寻找更好的解决方案。
答案 0 :(得分:7)
这可以从file.managed状态获得,但是在文档中很容易错过:
# /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感兴趣。它可以为你做到这一点。