了解面料

时间:2011-06-10 15:36:10

标签: fabric

我刚刚偶然发现了Fabric,文档并没有真正说明它是如何工作的。

我有根据的猜测是,您需要在客户端和服务器端安装它。 Python代码存储在客户端,并在运行命令时通过Fabric的wire-protocol传输。服务器通过~/.ssh/authorized_keys文件为当前用户(或特殊用户,或在fab命令的主机名中指定)使用OpenSSH SSH守护程序接受连接。

这是否正确?如果没有,它是如何工作的?

2 个答案:

答案 0 :(得分:17)

来自文档:

  

Fabric是一个Python(2.5或更高版本)库和命令行工具,用于简化SSH在应用程序部署或系统管理任务中的使用。

     

它提供了一套基本的操作套件,用于执行本地或远程shell命令(通常或通过sudo)和上传/下载文件,以及辅助功能,如提示正在运行的用户输入或中止执行。

所以它就像ssh'ing到一个盒子里并运行你放入run() / sudo()的命令。

没有代码传输,因此您只需要在远程计算机上运行ssh并拥有某种shell(默认情况下假定为bash)。

如果你想远程访问python解释器,你会更像execnet这样的东西。

如果您想了解有关远程计算机上的执行方式的更多信息,请查看文档的this section

答案 1 :(得分:3)

除了“fabfile.py”文件只需要存储在您的客户端上之外,您说的大多数内容都是正确的。需要在服务器上安装像OpenSSH这样的SSH服务器,并且需要在客户端上安装SSH客户端。

Fabric然后依次登录到一个或多个服务器并执行“fabfile.py”中定义的shell命令。如果您位于与“fabfile.py”相同的目录中,则可以使用“fab --list”查看可用命令列表,然后使用“fab [COMMAND_NAME]”执行命令。

服务器上的用户不需要添加到“〜/ .ssh / authorized_keys”,但如果是,则每次要执行命令时都不必输入密码。