让 Puppet 清单/模块可供广大受众使用

让 Puppet 清单/模块可供广大受众使用

在过去六个月中,我们的团队将 Puppet 引入了我们的系统。我们管理着各种资源,其中一些资源包含敏感数据(自动备份的数据库密码、专有软件的许可证密钥等)。

其他团队希望参与开发(或至少能够看到)我们的模块和清单。其他人做了什么来继续通过 Puppet 传输安全数据,同时与更多受众共享模块和清单?

答案1

使用Hiera 与 GPG(您需要 Hiera GPG 插件)用于存储任何敏感信息(密码等)并在需要时访问。它就像是 puppet 的钥匙串(或任何其他需要访问共享机密的东西)。

还可以查看这个小指南以获得印象这里

Hiera 还可以做更多!

答案2

我认为诀窍是拥有一个不在常规版本控制系统中的 puppet 清单文件。创建一个secrets类并将所有私人信息存储在其中。为了确保每个系统都有不同的密码而不必为每个系统存储不同的密码,我为自己做了另一件事,那就是在我的 secrets 类中生成一个随机字符串,并将其哈希值与单个服务值相结合使用。知道服务值并不能帮助您猜测主密钥,而是充当盐。参见使用 Puppet 管理服务密码我是如何做到这一点的,以及其他一些人是如何实现这个想法的。

Mediawiki 也对其数据使用“单一类别的秘密”:http://blog.wikimedia.org/2011/09/19/ever-wondered-how-the-wikimedia-servers-are-configured/

答案3

我们使用 github(公共和私有存储库)来共享模块和协调开发。模块在 github 上单独提交(使用 与主存储库分离git-subtree)。

所有更改均在 github 上的用户存储库中进行,并通过拉取请求,所有用户都可以在合并并拉回 puppetmasters 之前对其发表评论。

相关内容