首页 文章

如何将柱变量的内容添加到带盐的文件中?

提问于
浏览
2

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

例如,如果我有支柱数据,如:

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

在远程salt-minion上,我想要一个包含该私钥内容的文件,如 /etc/nginx/ssl/som-domain.com.key ,我该怎么做?我也愿意接受这样的回答,只要你给我一些见解并指出我正确的方向,它将会有很大的帮助 .

我从一些测试中了解了盐的 file.managedfile.* 朋友,但是我正在尝试将任意支柱数据添加到远程文件中的最佳/首选方式 .

我还在学习/黑客攻击盐,所以我还在使用Yaml Jinja进行模板化,如果你在制定一个合适的答案时很重要 .

谢谢!

Edit: 当然,hacky解决方案是:

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

但这看起来真是太烂了 . 在这里寻找更好的解决方案 .

1 回答

  • 6

    这可以从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感兴趣 . 它可以为你做到这一点 .

相关问题