博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python - Fabric简介
阅读量:6617 次
发布时间:2019-06-25

本文共 2881 字,大约阅读时间需要 9 分钟。

1 - Fabric

Fabric是一个Python的库,提供了丰富的同SSH交互的接口,可以用来在本地或远程机器上自动化、流水化地执行Shell命令。

非常适合用来做应用的远程部署及系统维护。简单易用,只需懂得基本的Shell命令。

  • HomePage:
  • Docs:
  • GitHub:
  • ChangeLog:

2 - 版本区分

目前,从PyPI可以搜索到主要的fabric库为“ Fabric 2.1.3 ”、“ fabric2 2.1.3 ”和“ Fabric3 1.14.post1 ”。

  • Fabric:官方Fabric,兼容 Python 2 & Python 3,但不兼容Fabric 1.x的fabfile;
  • fabric2: 与Fabric相同,仅作为平滑迁移(使用Fabric包安装1.x 版本,使用Fabric2包安装2.x版本,来实现1.x和2.x的共存);
  • Fabric3:是一个基于Fabric 1.x 的fork,兼容Python2 & Python3,兼容 Fabric1.x 的 fabfile;

 
Fabric 1.x 与2.x版本的主要区别:
  • Fabric 1.x只支持Python2.5-2.7,而Fabric2支持Python (2.7, 3.4+);
  • Fabric 2.x是重写Fabric 1.x的版本,不再兼容1.x 版本的fabfile,而且有些模块和用法也发生了很大改变;
  • 具体信息请见:

3 - 关于Fabric3

Fabric3 is a Python (2.7 or 3.4+) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.
This is a fork of the original Fabric (git) with the intention of providing support for Python3, while maintaining support for all non-archaic versions of Python2.
 
GitHub
HomePage
 
注意
  • 当前版本“Fabric3 1.14.post1”的功能和使用方法仍然与“Fabric 1.x.”基本一致。
  • 安装fabric3之前,需要先卸载fabric。
1 $ pip2 uninstall fabric 2 $ pip2 install fabric3 --proxy="10.144.1.10:8080" 3  4 $ pip2 show fabric3 5 Name: Fabric3 6 Version: 1.14.post1 7 Summary: Fabric is a simple, Pythonic tool for remote execution and deployment (py2.7/py3.4+ compatible fork). 8 Home-page: https://github.com/mathiasertl/fabric/ 9 Author: Mathias Ertl10 Author-email: mati@er.tl11 License: UNKNOWN12 Location: c:\python27\lib\site-packages13 Requires: paramiko, six14 Required-by:

 

4 - 问题处理

1 - 导入fabric.api提示报错“No module named api”
1 >>> from fabric.api import run2 Traceback (most recent call last):3   File "
", line 1, in
4 ImportError: No module named api5 >>>

处理方法:

  确认fabric版本信息,“from fabric.api import run”的方式只适用fabric1.x版本。

 

2 - 运行fabric示例提示报错“No idea what 'hello' is!”

1 $ cat fabfile.py 2 # coding:utf-8 3  4  5 def hello(): 6         print("hello fabric!") 7  8 $ fab hello 9 No idea what 'hello' is!10 11 $ fab --list12 No tasks found in collection 'fabfile'!
处理方法:
  确认fabric版本信息,fabric2.x版本不兼容Fabric 1.x的fabfile。遵照fabric 2.x要求,更改fabfile文件内容格式,重新运行即可。
  具体信息可查看:
1 $ pip show fabric 2 Name: fabric 3 Version: 2.1.3 4 Summary: High level SSH command execution 5 Home-page: http://fabfile.org 6 Author: Jeff Forcier 7 Author-email: jeff@bitprophet.org 8 License: BSD 9 Location: c:\python27\lib\site-packages10 Requires: paramiko, invoke, cryptography11 Required-by:12 13 $ cat fabfile.py14 from invoke import task15 16 @task17 def hello(c):18         c.run("echo 'hello fabric'")19         print("hello fabric!")20 21 $22 23 $ fab --list24 Available tasks:25 26   hello27 28 29 $ fab hello30 'hello fabric'31 hello fabric!32 33 $

 

5 - 参考信息

以下内容主要适用于Fabric 1.x 和 Fabric3。
  • [Python远程部署利器Fabric详解]()
  • [fabric实现远程操作和部署]()
  • 中文文档:
  • [Python模块学习 - fabric]()

 

转载于:https://www.cnblogs.com/anliven/p/9186994.html

你可能感兴趣的文章
我的友情链接
查看>>
Android掌中游斗地主游戏源码完整版
查看>>
LeetCode - 26. 删除排序数组中的重复项
查看>>
Linux LVM逻辑卷配置过程详解
查看>>
rundeck 修改密码 添加节点
查看>>
IT讲师韩顺平:创业不易,尚硅谷延续教育初心
查看>>
IntelliJ IDEA 插件 阿里巴巴Java开发手册
查看>>
利用nmap对Mongodb Redis未授权访问测试
查看>>
CakePHP
查看>>
我的友情链接
查看>>
编译mysql5.6.27
查看>>
搭建centos6.7网站服务器记录
查看>>
Release版本调用ffmpeg av_register_all程序崩溃
查看>>
Referenced management pack not found
查看>>
jquery中data函数的用法示例
查看>>
巧用strtotime函数计算日期
查看>>
JVM中java对象的生命周期
查看>>
mysql 查看连接数,状态
查看>>
JFinal集成YUI Compressor压缩合并JS和CSS
查看>>
windows下的Oracle卸载
查看>>