Python模块学习 - fabric

Fabric是一个Python库和命令行工具,用于简化应用部署和系统管理。依赖于paramiko,它提供API接口执行命令、上传文件等操作。用户通过创建Python文件和tasks进行使用。常用方法包括run、sudo、env等,可指定hosts、roles执行任务。Fabric还支持并行执行、颜色输出和用户交互功能。

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

简介

fabric是一个Python的库,同时它也是一个命令行工具。使用fabric提供的命令行工具,可以很方便地执行应用部署和系统管理等操作。

fabric依赖于paramiko进行ssh交互,fabric的设计思路是通过几个API接口来完成所有的部署,因此fabric对系统管理操作进行了简单的封装,比如执行命令,上传文件,并行操作和异常处理等。

 

由于fabric比较特殊它还是一个命令行工具,可以通过help进行命令的了解

 

 

入门使用

fabric的典型使用方式就是,创建一个Python文件,该文件包含一到多个函数,然后使用fab命令调用这些函数。这些函数在fabric中成为task,下面是一个例子

 

PS:fab命令执行时,默认引用一个名为fabfile.py的文件,我们也可以通过-f来进行指定(文件名不能为abc.py,会冲突).

这里使用了三个fabric的封装:

run:用于执行远程命令的封装

sudo:以sudo权限执行远程命令

env:保存用户配置的字典(保存了相关的配置,比如登录用户名env.user,密码env.password,端口env.port等,如果没有指定用户名那么默认使用当前用户,端口使用22)

 

需要注意的是:

一次可以多个task,按照顺序执行: fab -f hello.py hostname ls

给task传递参数使用task:参数,多个参数按照位置进行传递(和Python相同,对于关键字的参数可以,在命令行中指定:fab ls:path=/home)

fabric的命令行参数

fab命令作为fabric程序的入口提供了,丰富的参数调用.

 

如下例子,不写一行代码获取所有主机的ip地址

 

常用的对象和方法介绍

介绍fabric中的env对象,以及其他的比如执行命令模块,上传文件等。

fabric中的env

env是一个全局唯一的字典,保存了Fabric所有的配置,在Fabric的实现中,他是一个_AttributeDict()对象,之所以封装成_AttributeDict()对象,是覆盖了__getattr__和__setattr__,使我们可以使用“对象.属性=值”的方式,操作字典。

我们可以通过源码的方式,查看env的配置参数,或者使用如下方式查看:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值