Fabric 是用于“执行本地或远程 shell 命令”的工具。
为什么要在长的 Fabric 脚本中逐行重新实现远程 shell 脚本?
也就是说,为什么不写一个简短的 Fabric 脚本来运行一个长的远程 shell 脚本呢?
Fabric 是用于“执行本地或远程 shell 命令”的工具。
为什么要在长的 Fabric 脚本中逐行重新实现远程 shell 脚本?
也就是说,为什么不写一个简短的 Fabric 脚本来运行一个长的远程 shell 脚本呢?
如果我必须在 10 台服务器上运行相同的脚本,这不是一个好主意。这意味着我不仅要在 10 台服务器上粘贴相同的长脚本,还要确保如果我在 1 台服务器上更改它,则必须将更改应用于所有服务器。我知道可以通过将该脚本保存在共享位置来避免这种情况,但是将脚本放在 fabfile 中会更有条理,它不仅可以进行版本控制,而且可以在所有角色之间保持统一。
lobster1234 提出了一个很好的观点,即您不想在 10 个服务器上手动粘贴一个长的远程 shell 脚本。但是,如果您仍然希望避免将长的远程 shell 脚本重写为长 Fabric 脚本,则可以编写一个 Fabric 脚本,将该远程 shell 脚本复制到指定的服务器,执行该脚本,然后删除该脚本。这样,您可以同时对 fabfile 和 shell 脚本进行修订控制,但避免将 shell 脚本重写为 Fabric 脚本。
另外,我认为您选择的路径将取决于您要做什么。在 python 中有些事情更容易(将它写在你的 fabfile 中),而另一些在 shell-land 中更容易(采用提到的 shell 方法之一)。
无论哪种方式,fabric 都是面向集中化和便携性的,实际上在做什么并不重要。