PyPI-包版本 PyPI-Python版本 PyPI-许可证 圆形CI Codecov公司

欢迎来到Fabric!

Fabric是一个高级Python(2.7,3.4+)库,旨在执行shell通过SSH远程执行命令,返回有用的Python对象。它构建在的顶部援引(子进程命令执行和命令行功能)和帕拉米科(SSH协议实现),扩展其API以相互补充并提供其他功能。

要了解此版本Fabric的新增功能,请参阅变更日志.

项目维护者保持路线图在他的网站上。

该网站涵盖了Fabric的项目信息,如changelog、,贡献准则等。详细的用法和API文档可以可以在我们的代码文档网站上找到,docs.fabfile.org.

请参阅下面的高级介绍,或左侧的导航网站内容的其余部分。

什么是织物?

Fabric是一个高级Python(2.7,3.4+)库,旨在执行shell通过SSH远程执行命令,返回有用的Python对象:

>>> 织物 进口 连接
>>>结果 = 连接(“web1.example.com”).运行(“uname-s” 隐藏=真的)
>>>消息 = “跑步{0.命令!r}{0.connection.host},获得标准输出:\n个{0.标准输出}"
>>>打印(消息.格式(结果))
在web1.example.com上运行“uname-s”,获得标准输出:
Linux操作系统

它建立在援引(子进程命令执行和命令行功能)和帕拉米科(SSH协议实现),扩展其API以相互补充提供附加功能。

注释

结构用户可能还对以下两项感兴趣严格可选图书馆实现最佳实践用户级代码:调用(仅调用,以本地为中心的CLI任务)和拼接(远程友好,通常以shell命令为中心,实用程序功能)。

它是如何使用的?

Fabric的核心用例包括(但不限于):

  • 单个主机上的单个命令:

    >>>结果 = 连接(“web1”).运行('主机名')
    网站1
    >>>结果
    <Result cmd='hostname'退出=0>
    
  • 跨多台主机的单个命令(通过不同的方法:串行、,平行等):

    >>> 织物 进口 序列组
    >>>结果 = 序列组(“web1” “web2”).运行('主机名')
    网站1
    网络2
    >>>#正在对一致性进行排序。。。这是一个判决!
    >>>已排序(结果.项目())
    [(<Connection host=web1>,<Result cmd='hostname'exited=0>),…]
    
  • 针对单个连接的Python代码块(函数/方法):

    >>>定义 磁盘释放(_F)(c(c)):
    ...    uname公司 = c(c).运行(“uname-s” 隐藏=真的)
    ...    如果 “Linux” 在里面 uname公司.标准输出:
    ...        命令 = “df-h/|tail-n1|awk'{print$5}'”
    ...        返回 c(c).运行(命令 隐藏=真的).标准输出.()
    ...    错误 = “不知道如何在上获得磁盘空间{}!".格式(uname公司)
    ...    提升 出口(错误)
    ...
    >>>打印(磁盘释放(_F)(连接(“web1”)))
    33%
    
  • 多台主机上的Python代码块:

    >>>#注:代码同上!
    >>>定义 磁盘释放(_F)(c(c)):
    ...    uname公司 = c(c).运行(“uname-s” 隐藏=真的)
    ...    如果 “Linux” 在里面 无核武器.标准输出:
    ...        命令 = “df-h/|tail-n1|awk'{print$5}'”
    ...        返回 c(c).运行(命令 隐藏=真的).标准输出.()
    ...    错误 = “不知道如何在上获得磁盘空间{}!".格式(uname公司)
    ...    提升 出口(错误)
    ...
    >>>对于 cxn公司 在里面 序列组(“web1” “web2” “db1”):
    ...   打印("{}:{}".格式(cxn公司 磁盘释放(_F)(cxn公司)))
    <连接主机=web1>:33%
    <连接主机=web2>:17%
    <连接主机=db1>:2%
    

除了这些面向库的用例外,Fabric还可以轻松地与Invoke的命令行任务功能集成,通过绝妙的二进制存根:

  • Python函数、方法或整个对象可以用作CLI可寻址任务,例如。绝妙的 部署;

  • 任务可以指示在其自身之前或之后运行的其他任务执行(任务前或任务后);

  • 任务通过常规GNU样式的参数进行参数化,例如。绝妙的 部署 --env=产品 -d日;

  • 在单个CLI会话中可以指定多个任务,例如。绝妙的 建造 部署;

  • 更多-支持所有其他调用功能-请参阅它的文档了解详细信息。

我是结构1的用户,如何升级?

我们以一种允许同时安装的方式包装了现代Fabric结构1,因此您可以以您的用例所需的任何速度进行升级。多种可能的方法–请参阅我们的详细的升级文档了解详细信息。

这个网站是什么?

网址:www.fabfile.org提供了Fabric的项目信息,例如变更日志、贡献指南、开发路线图、新闻/博客等等第四。

详细的概念和API文档可以在我们的代码中找到文档站点,docs.fabfile.org.