首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Fabric3:Fabric的Python3支持版

Fabric3是一个用来简化SSH使用的Python库和命令行工具,它支持Python2.7和Python3.4+,你可以用它自动化完成应用部署或者其他系统管理任务。这是原Fabric项目的一个Fork分支,并增加了Python3的支持,同时没有破坏Python2.7的支持。下面我们会介绍这个项目和原Fabric项目的区别。

如果你想从原Fabric项目切换到这个项目,这样做就可以了:

不要忘记对应地升级你的requirements.txt文件:

这个库提供了执行本地或远程任务的很多基本操作、上传下载文件的功能和一些辅助功能,比如input操作,暂停任务等待用户输入内容。

通常的使用方法就是创建一个Python模块,里面写一些任务函数,然后通过fab命令运行。下面是一个只包含一个任务的小例子:

把上面内容保存为文件 fabfile.py(这是fab命令默认使用的Python模块),你可以在一个或者多个服务器上运行fabfile.py中定义的命令。像这样:

除了使用命令行工具fab。Fabric3还可以作为库,被其他Python代码所使用,这样它就为SSH的使用提供了一个高层接口,在这里,Fabric3在底层使用了库Paramiko。

和原Fabric的区别

总体来说这个项目希望跟原Fabric提供一模一样的接口和功能,并且会定期从原项目merge新修改到当前项目。下面是它们之间仅有的一点差别:

1、项目名称叫Fabric3,多了一个数字3。虽然叫3,但它同时支持Python2.7和Python3.4+。

2、版本号和原项目也保持一致,只不过后面增加一个postX标识。所以1.12.0.post1和原项目的1.12.0是等价的。

3、fabric.utils.RingBuffer被移除了,使用标准库的collections.deque来代替它。

4、在Python3版本中,Fabric3基于contextlib.ExitStack构建了它自己的contextlib.nested函数,所以contextlib.ExitStack已经不存在了。我们这样做是有很好的理由的,我们也不推荐你使用它。

5、Fabric3依赖six来做Python2和3的兼容。

6、对于paramiko的依赖,需要版本1.17.0以上。

英文原文:https://github.com/mathiasertl/fabric/

译者:诗书塞外

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180211A05B7K00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券