Python下Fabric的使用

本文介绍了Python库Fabric的用途,它是一个基于SSH的自动化工具,适用于系统管理和部署。文章详细阐述了Fabric的安装、基本使用,包括Hello Fabric示例、Fabric.api模块的应用,如查看远程主机内核版本和文件夹列表。还讨论了错误处理、跨网关使用、并行运行以及输出管理,展示了如何通过parallel和serial装饰器控制任务执行顺序,以及如何通过pool_size限制并发线程数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文中部分内容整理自官方文档。如果文中出现错误,欢迎指出与交流。

Fabric是什么?

Fabric 是一个 Python的库和命令行工具,用来提高基于 SSH 的应用部署和系统管理效率。可以实现与远程服务器的自动化交互。Fabric底层基于paramiko模块。其特点即为简单高效,并且支持多线程。在需要运维数十台至几百台机器(视情况而定)的情况下非常好用。但如果需要运维上千台并不推荐使用Fabric,可以尝试使用saltstack。

Fabric的使用

在搞清Fabric的作用后,我们可以尝试通过一些简单的程序,来更加深入的了解Fabric。

注:文中实验环境均为Centos7.3。使用的python版本为python2.7。

安装Fabric模块

需要先安装paramiko模块(上文提到了,Fabric基于这个模块)。

#yum  install  gcc  python-crypto  python-devel  python-paramiko  -y

通过pip命令安装Fabric

#pip  install  fabric

如果没有pip命令,可以通过以下命令安装:

#yum install  python-pip

至此Fabric模块就安装好了。

Hello Fabric

一个合格的教程,一定少不了hello world这个国际惯例:

#vim  fabfile.py      

注:fabric执行的时候会默认寻找当前路径下的fabfile.py文件。如果文件名为其它,需要在执行的时候通过-f 文件名的方式手动指定文件。

def hello()print "hello world"

Fabric脚本执行并不使用python命令,而是使用fab命令(在安装模块时会一起安装)。所以这个脚本的执行方法为:

#fab  hello    #hello对应脚本中你想执行的函数名。
Hello world!

Done.

#fab -f  你的文件名   hello   #此方法针对文件名不为fabfile时

至此我们便基于Fabric完成了一个非常简单的脚本,甚至连Fabric模块都不需要导入。但从中大家可以了解到Fabric脚本就是在文件中定义一个或多个函数,函数中是你要执行的任务。然后通过fab命令执行fabfile.py文件,执行你要执行的函数。

Fabric.api模块

Fabric.api是Fabric中最常用也是最核心的模块。可以使用此模块来实现与远程服务器的交互。简单的使用这些API就可以完成大部分应用场景的需求。

常用api 说明 例子
local 在本地执行命令 local(‘username -r’)
run 在远程执行命令 run(‘username -r’)
lcd 切换本机路径 lcd(‘/usr’)
cd 切换远程服务器路径 cd(‘/usr’)
put 上传文件到远程服务器 put(‘本地文件’,’远程路径’)
get 从远程服务器下载文件 get(‘远程文件’,’本地路径’)
prompt 获取用户输入(类似input) prompt(‘input path’)
confirm 让用户确认是否继续 confirm(‘continue?’)
env 定义全局信息,如主机、密码等 env.hosts=’localhost’
例子一:

注:Fabric基于paramiko模块,paramiko底层就是调

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值