Puppet 或 Chef 是否适合在多租户环境中管理非常基本的服务器配置?

Sim*_*een 9 puppet

这与多租户环境有关,例如小型托管公司。

Puppet(或类似)是否适合处理基本但关键的质量变化?例如:

  • 更新 DNS 解析器 (resolv.conf)
  • 设置 SSH 密钥
  • 更新 NTP 配置
  • 配置 snmpd
  • 部署监控脚本,例如 SNMP Perl 扩展或 Nagios 脚本

我担心的是安全性和侵入性:

  1. 我不希望任何服务器能够看到它不应该看到的任何配置
  2. 我担心 Puppet master 可能容易受到受感染服务器的攻击
  3. 我不希望 Puppet 进行任何它不应该进行的更改,或者恢复在服务器上所做的任何手动更改。

我应该说明一下,我从未在生产中使用过 Puppet,只是在测试实验室中快速玩过,所以我可能会以错误的方式思考这个问题!

Sir*_*rex 9

是的,这当然是可能的。不过,决定是否应该这样做取决于您。

关于您的疑问:

1)足够公平。流量是基于 ssl 的,因此证书管理很重要。也不要相信客户提供的与其身份相关的任何“事实”,因为客户可以更改这些“事实”。您希望依靠客户端的 ssl 证书来提供服务器身份的身份验证。老实说,如果您正确使用 hiera 之类的东西并避免在代码中使用大量基于主机名的 if 块(您确实应该这样做),您会没事的。

2)它不应该是,假设你保持修补。正确配置后,傀儡大师只有一个很小的向量会受到客户端的攻击。也就是说,如果它确实受到损害,影响很大,所以要小心锁定它。

3) 这确实是一个测试和部署问题。如果你有可靠的 puppet 代码,它不会搞砸你的文件。排序确实需要一些时间,但对于基础知识(如您需要的)而言,不会太久。


Afs*_*lak 6

尝试 Ansible (ansible.cc)。可能是给你的。您的客户端上没有运行代理。它的增长速度非常快。

另一个非常好的选择是 Salt Stack。

Ansible 和 Salt 很容易理解,如果需要,您可以将它们用作命令行工具,例如分布式 shell。