当前位置:   article > 正文

Python模块学习 - fabric_python fabric

python fabric

简介

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的配置参数,或者使用如下方式查看:

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/447396
推荐阅读
相关标签
  

闽ICP备14008679号