具有多个配置服务器的 Chef/Puppet

npt*_*npt 1 configuration-management puppet chef

Puppet 或 Chef 是否支持复制的 puppetmasterd/Chef 服务器?这些工具会导致单点故障,这让我感到非常惊讶,但我在他们的文档或谷歌中找不到任何提及。

我知道 Puppet 和 Chef 可以在没有服务器的情况下运行(可能使用例如http://bitfieldconsulting.com/scaling-puppet-with-distributed-version-control 中描述的 git 进行更新),但这似乎是第二个 -阶级公民,大概会失去一些监控能力。

sci*_*rus 5

对于木偶,你需要

  1. 一模一样的表现。这可以通过将您的清单保持在版本控制中并在每个服务器上检查它们来实现,无论如何您都应该这样做。
  2. 用于存储配置的单个数据库(如果您使用它)。这就像从默认的 sqlite 切换到 MySQL 或 PostgreSQL 一样简单。然后,如果需要,您可以使用这些数据库的工具来复制数据库。
  3. 来自所有 puppetmaster 的同一证书颁发机构的证书。Dan Bode有我见过的最好的解释。但是,它可能不会按您预期的方式工作。另外,我不确定这如何处理客户端证书(即/var/lib/puppet/ssl/ca/signed/*)。也许他们的验证总是由单个 CA 处理(引入单点故障),或者 pem 文件在 CA 签名后分发给每个 puppetmaster。

  • 签名的目录并不重要;只要客户端提供的证书链接到每个主使用的 CA 证书,你就可以了。多台主机运行单个 CA 证书的棘手之处在于它们可以发出重复的序列号,因此如果它们被发出相同的序列号,吊销 (`puppet cert --clean myhost1.my.com`) 也会吊销 myhost2.my.com不同大师的连续剧。坏消息。要绕过它,请在客户端上使用 `--ca_server master1.my.com` 并在非签名 puppetmaster 上设置 `ca = false`。 (2认同)