Python - Fabric简介

1 - Fabric

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

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

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,而且有些模块和用法也发生了很大改变;
  • 具体信息请见:Rewrite for 2.0! See Upgrading from Fabric 1.x

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.

GitHubhttps://pypi.org/project/Fabric3/

HomePagehttps://github.com/mathiasertl/fabric/

注意

  • 当前版本“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 Ertl
10 Author-email: [email protected]
11 License: UNKNOWN
12 Location: c:\python27\lib\site-packages
13 Requires: paramiko, six
14 Required-by:

4 - 问题处理

1 - 导入fabric.api提示报错“No module named api”

1 >>> from fabric.api import run
2 Traceback (most recent call last):
3   File "<stdin>", line 1, in <module>
4 ImportError: No module named api
5 >>>

处理方法:

  确认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 --list
12 No tasks found in collection ‘fabfile‘!

处理方法:

  确认fabric版本信息,fabric2.x版本不兼容Fabric 1.x的fabfile。遵照fabric 2.x要求,更改fabfile文件内容格式,重新运行即可。

  具体信息可查看:http://docs.fabfile.org/en/2.1/getting-started.html#addendum-the-fab-command-line-tool

 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: [email protected]
 8 License: BSD
 9 Location: c:\python27\lib\site-packages
10 Requires: paramiko, invoke, cryptography
11 Required-by:
12
13 $ cat fabfile.py
14 from invoke import task
15
16 @task
17 def hello(c):
18         c.run("echo ‘hello fabric‘")
19         print("hello fabric!")
20
21 $
22
23 $ fab --list
24 Available tasks:
25
26   hello
27
28
29 $ fab hello
30 ‘hello fabric‘
31 hello fabric!
32
33 $

5 - 参考信息

以下内容主要适用于Fabric 1.x 和 Fabric3。

原文地址:https://www.cnblogs.com/anliven/p/9186994.html

时间: 2024-11-09 00:59:24

Python - Fabric简介的相关文章

python 自动化部署工具Fabric简介

自动化部署工具Fabric简介 Fabric就是一个帮助我们在上线时减少重复/繁琐操作的自动化部署利器,对于缺乏成熟运维平台的众多小公司的运维或开发人员来说,掌握这个工具是有必要的. 1. Fabric是什么 Fabric官方文档的描述如下:      Fabric is a Python (2.5-2.7) library and command-line tool for streamlining the use of SSH for application deployment or sy

Python fabric远程自动部署简介

2.1.    Hello,fab 1. 在当前目录下新建文件fabfile.py,输入内容如下 1 def hello(): 2   3     print("Hello fab!") 2. 执行命令fab hello,结果如下 1 # fab hello 2   3 Hello fab! 3. 文件名不为fabfile.py时需进行指定 1 # mv fabfile.py test.py 2   3 # fab hello 4   5    6   7 Fatal error: C

Python Fabric ssh 配置解读

Python Fabric ssh 配置解读 Fabric 2.4简介: Fabric is a high level Python (2.7, 3.4+) library designed to execute shell commands remotely over SSH, yielding useful Python objects in return. 简单说就是一个基于 ssh 执行远程 shell 命令返回一个 python 对象的一个 python 库. Fabric 的大部分配

[Python Fabric] [SSH] Mac OS X 10.9 + Vagrant虚拟环境使用Python Fabric进行SSH远程登录的简单实验

1. ssh客户端生成key 1 $ ssh-keygen -t rsa -b 4096 2 Generating public/private rsa key pair. 3 Enter file in which to save the key (/Users/(username)/.ssh/id_rsa): vagrantid_rsa 4 Enter passphrase (empty for no passphrase): 5 Enter same passphrase again: 6

Python的简介与入门

Python的简介与入门 ·Python是一种结合了解释.性编译性.互动性和面向对象多种特性的脚本语言.对于编程初学者而言,Python易于阅读与学习,并且支持广泛的应用程序的开发与拥有支持多种平台的广泛的基础数据库. ·安装Python在Windows环境下  1.进入Python 官方网站:https://www.python.org/                 2.点击Downloads==> Downloads for Windows==> Python 3.6.2  3.下载安

以写代学:python 模块简介&输出用户指定位数密码的脚本

什么是模块 (1)模块是从逻辑上组织python代码的形式 (2)当代码量变的相当大的时候,最好把代码分成一些有组织的代码段,前提是保证它们的彼此交互 (3)这些代码段之间有一定的联系,可能是一个包含数据成员和方法的类,也可能是一组相关但彼此独立的操作函数 (4)模块名不能乱起,字母数字下划线组成,首字母不能是数字 导入模块 (1)使用import导入模块,模块被导入后,程序会自动生成pyc的字节码文件以提升性能 (2)模块属性通过"模块名.属性"的方法调用,如果仅需要模块中的某些属性

python学习---简介

http://www.cnblogs.com/wuguanglei/p/3866583.html http://www.cnblogs.com/wuguanglei/p/3866583.html ok? python学习---简介

使用python fabric搭建RHEL 7.2大数据基础环境以及部分优化

1.使用python fabric进行Linux基础配置 使用python,可以让任何事情高效起来,包括运维工作,fabric正式这样一套基于python2的类库,它执行本地或远程shell命令提供了操作的基本套件(正常或通过sudo)和上传/下载文件,如提示用户输入运行辅助功能,或中止执行. 用Python3开发的部署工具叫fabric3:fabric3,和fabric一样最大特点是不用登录远程服务器,在本地运行远程命令,几行Python脚本就可以轻松部署. 典型用途包括创建一个包含一个或多个

Python的简介以及安装和第一个程序以及用法

Python的简介: 1.Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.Python已经成为最受欢迎的程序设计语言之一.2011年1月,它被TIOBE编程语言排行榜评为2010年度语言.自从2004年以后,python的使用率是呈线性增长. 2.Python在设计上坚持了清晰划一的风格,Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩