我正在考虑推出一种新的配置管理工具来取代我们自己开发的解决方案。事实上的标准是 Chef 和 Puppet,它们都是以 Ruby 为中心的(虽然显然可以用于部署非 Ruby 环境)。我们的绝大多数开发都是用 Python 完成的,我们的内部部署工具大量使用织物。因此,我正在学习盐因为它也是 Python,尽管它不如 Chef 或 Puppet 成熟。但由于我对这些选项不够熟悉,我发现很难进行同类比较。
除了社区规模较小之外,使用 Salt 而不是 Puppet/Chef 是否会放弃任何重要的东西?
更新
自从我发布这个问题已经过去六个月了。尽管它已经关闭,但已经被浏览了 1,000 多次,所以我想就我的经历发表评论。
我最终决定使用 Puppet,因为它的社区更大。然而,这是一次非常令人沮丧的体验,主要是因为 Puppet 配置语法太复杂了。由于我现在有了比较两者的参考框架,我最近又看了看 Salt——我不会再回头了。它非常非常酷。我最喜欢的东西:
无缝集成推送和拉取配置模型。Puppet 使用拉取模型(节点定期轮询服务器以获取更新),并有一个姊妹组件 Marionette 用于推送更改。两者对我来说都很重要,我更喜欢 Salt 的工作方式。当您拥有大量节点时,Salt 的执行速度也会更快。
配置语法使用 YAML,这只是一种使用缩进和项目符号的简单文本格式。您还可以选择通过模板使用其他配置格式。根据我的经验,这使得 Salt 的学习和维护变得容易 10 倍。
基于 Python。这是我最初开始关注 Salt 的最大原因。最后,它成为了我留下来的次要原因之一。但如果您像我们一样是 Python 商店,那么开发 Salt 插件会更容易。