赞
踩
简介
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的配置参数,或者使用如下方式查看:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。