如何将支柱变量的内容添加到带有盐的文件中?
How do i add the contents of a pillar variable to a file with salt?
在 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
这样的文件,其中包含该私钥的内容,我该怎么做?我也乐于接受这样的回答,"You're doing it all wrong, dummy." 只要您能给我一些见解并指出正确的方向,就会有很大帮助。
我从一些测试中了解到 salt 的 file.managed
和 file.*
朋友,但我不确定是否有最好的/首选的方式将任意支柱数据添加到远程文件,因为我正在尝试做。
我仍在学习/使用 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 状态获得,但不可否认它很容易在文档中遗漏:
# /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 感兴趣。它可以为您做到这一点。
在 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
这样的文件,其中包含该私钥的内容,我该怎么做?我也乐于接受这样的回答,"You're doing it all wrong, dummy." 只要您能给我一些见解并指出正确的方向,就会有很大帮助。
我从一些测试中了解到 salt 的 file.managed
和 file.*
朋友,但我不确定是否有最好的/首选的方式将任意支柱数据添加到远程文件,因为我正在尝试做。
我仍在学习/使用 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 状态获得,但不可否认它很容易在文档中遗漏:
# /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 感兴趣。它可以为您做到这一点。