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