Puppet Bolt 是否具有与 Red Hat Ansible 相同的功能集?

Jee*_*eef 4 puppet ansible puppet-bolt

昨天我在一个会议上与一些人谈论 Puppet Lab 的Bolt 1.0。我试图弄清楚这些工具是否可与 Ansible 相媲美,但是否可以利用所有已经存在的 puppet 模块,或者是否以其他方式有所不同。

我对这两种工具都不太熟悉,希望知识渊博的人能够解释这两种工具之间的区别。

我可以看到两者都是无代理的,我认为这是一个优点 - 但我不清楚其他差异以及为什么一个会选择一个而不是另一个。 不是在寻找主观答案 - 而是寻找区分这两种工具的实际列表

Ale*_*vey 7

Puppet Bolt 和 RedHat Ansible 都试图解决无代理、基于推送的编排和配置管理的相同问题。但是,自然而然地,它们没有完全相同的功能。

我会牢记以下几点:

  • Ansible 是这个领域的成熟产品(在撰写本文时),而 Bolt 是一个新产品。这样做的结果是,您会发现已经为许多任务编写了 Ansible 角色,而在 Bolt 中,您可能会发现较少的代码示例可以帮助您完成任务。

  • Bolt 是用 Ruby 编写的,而 Ansible 是用 Python 编写的。Bolt 使用 Ruby 和 Puppet 的 DSL,而 Ansible 使用 YAML DSL。有些人会根据他们了解和/或喜欢这些语言中的哪一种来选择一种或另一种工具。(虽然,正如评论中所指出的,Bolt 任务可以用多种语言编写,并且还有一个用于计划的 YAML 选项。)

  • 正如您所说,Bolt 允许与 Puppet 配置管理轻松集成,在 Bolt 计划中使用 Puppet 的模块及其 DSL。如果您已经使用 Puppet,Bolt 是自然的选择。

但是我肯定会同时尝试它们并选择一个看起来更适合您要解决的实际问题的方法。

  • Puppet Bolt 任务几乎可以用任何语言(python、bash、PowerShell 等)编写,并且有一个[计划的 yaml 选项](https://puppet.com/docs/bolt/latest/writing_yaml_plans.html) 。 (2认同)
  • 只是想澄清一下“Bolt 使用 Ruby”向我建议“Bolt 的东西必须用 Ruby 编写”:) (2认同)