为什么要在Fabric脚本中逐行重新实现shell命令?

时间:2011-04-15 06:31:48

标签: python shell deployment fabric

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

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

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

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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

答案 2 :(得分:2)

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

无论哪种方式,面料都面向集中化和便携性,实际上提升起来并不重要。