4

用于本地/远程命令执行的 Fabric 和 Plumbum python 库的优缺点是什么?当一个库应该使用而另一个不使用时,什么是用例?应该注意哪些差异?

4

2 回答 2

3

背景和建议的比较方法

(哎呀,这是一个死帖)

这两种工具都很有趣,允许本地或远程工作,但它们应该解决的问题(即“术语”)存在差异,并且两者基本上都被现代部署/自动化工具(如 ansible 和许多其他工具)过时了选择了DSL方式,例如terraform)。与更现代的方法相比,它们的优势在于缺乏关于“如何”的“固执”方法,以及更多关于“什么”的方法。

建议的比较标准:

  1. “Pythonness”与“Shellness”(即每个用户代码的“pythonic”程度)
  2. 特殊能力
  3. ROI 与 2 种类型的“自动化”代码维护者(操作与开发,让我们将“QA”放在两者之间)

Fabric(我的最后一项工作是在 1.8 完成的,请稍加注意):

  1. 更 Pythonic,而不是 shellish,这意味着旧工具和新工具都易于支持 - 即编辑器,IDE 将易于设置
  2. 许多上下文处理器,许多装饰器,非常好
  3. 更容易被开发人员采用,更多的牵引力将来自运维人员

  1. 用户代码可以是 pythonic 或 shellish
  2. “shell 组合器”是获得高级 shell/perl 人员的杀手级功能,但它使用动态导入,因此编辑器/IDE 的设置有点棘手。
  3. 由于 1. 由于模仿 Plumbum 中的 shell 结构,您将更容易获得“操作”人员,但请安装良好的编码约定。

结语

使用过这两个工具包(很有趣),然后切换到 ansible - 我有信心声称 - 这两个工具现在都被 ansible 取代了。您可以使用现有的 ansible 模块来完成大多数自动化任务,而您不能 - 您可以为它编写插件或模块(使用任何语言),或者只调用 shell 模块。

我的考虑是这样的:

  • 如果您的维护团队具有良好的编程技能(尤其是在 python 中),作为要求 - 您可以使用 Fabric、Plumbum(它有更酷的 hack ;))或 Ansible。
  • 如果您有多层次的多团队组织,我会简单地押注 Ansible - 它的学习曲线较低,并且可以轻松成长。

再会。

于 2018-08-19T18:00:31.387 回答
0

它们几乎是一样的。Fabric 优于 Plumbum 的最大优势是能够并行连接到多个主机,这在您使用非平凡设置时或多或少是必不可少的。Fabric 还提供了一些 contrib 帮助程序,可让您上传 jinja 模板、上传文件以及将文件传输回本地系统。我个人发现fabric api对于远程服务器的使用要直观得多。

当然是 YMMV,但两者都非常接近 shell 命令。也就是说,我和我的团队专注于大多数配置/部署流程的 ansible。Fabric 确实以牺牲自己的幂等性为代价提供了一些超越 ansible 的能力。

于 2018-07-18T08:39:08.827 回答