我刚刚偶然发现了Fabric,文档并没有真正说明它是如何工作的。
我有根据的猜测是,您需要在客户端和服务器端安装它。 Python代码存储在客户端,并在运行命令时通过Fabric的wire-protocol传输。服务器通过~/.ssh/authorized_keys
文件为当前用户(或特殊用户,或在fab
命令的主机名中指定)使用OpenSSH SSH守护程序接受连接。
这是否正确?如果没有,它是如何工作的?
答案 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”,但如果是,则每次要执行命令时都不必输入密码。