4

Fabric 是用于“执行本地或远程 shell 命令”的工具。

为什么要在长的 Fabric 脚本中逐行重新实现远程 shell 脚本?

也就是说,为什么不写一个简短的 Fabric 脚本来运行一个长的远程 shell 脚本呢?

4

3 回答 3

4

如果我必须在 10 台服务器上运行相同的脚本,这不是一个好主意。这意味着我不仅要在 10 台服务器上粘贴相同的长脚本,还要确保如果我在 1 台服务器上更改它,则必须将更改应用于所有服务器。我知道可以通过将该脚本保存在共享位置来避免这种情况,但是将脚本放在 fabfile 中会更有条理,它不仅可以进行版本控制,而且可以在所有角色之间保持统一。

于 2011-04-15T08:41:46.930 回答
4

lobster1234 提出了一个很好的观点,即您不想在 10 个服务器上手动粘贴一个长的远程 shell 脚本。但是,如果您仍然希望避免将长的远程 shell 脚本重写为长 Fabric 脚本,则可以编写一个 Fabric 脚本,将该远程 shell 脚本复制到指定的服务器,执行该脚本,然后删除该脚本。这样,您可以同时对 fabfile 和 shell 脚本进行修订控制,但避免将 shell 脚本重写为 Fabric 脚本。

于 2011-04-15T12:16:42.610 回答
2

另外,我认为您选择的路径将取决于您要做什么。在 python 中有些事情更容易(将它写在你的 fabfile 中),而另一些在 shell-land 中更容易(采用提到的 shell 方法之一)。

无论哪种方式,fabric 都是面向集中化和便携性的,实际上在做什么并不重要。

于 2012-01-13T18:52:34.903 回答