Python Fabric模块详解

Python Fabric模块详解

什么是Fabric?

简单介绍一下:

	Fabric是一个Python的库和命令行工具,用来提高基于SSH的应用部署和系统管理效率。

再具体点介绍一下,Fabric是:

  • 一个让你通过命令行执行无参数Python函数的工具
  • 一个让通过 SSH 执行 Shell 命令更加 容易更符合 Python 风格 的命令库(建立于一个更低层次的库)。

Fabric的安装

作为一个python的库,那简单粗暴中略带着些许优雅的pip一定是首选了。

python2推荐安装方法:

​```pip install fabric```

如果是python3,相对应的库是fabric3。

python3推荐安装方法:

​```pip3 install fabric3```

这里要注意一下,在同一个环境中,安装fabric3之前,需要先卸载fabric。

fabric是一个特殊的模块,不仅仅是一个python库,还是一个命令行工具,所以我们可以在命令行直接使用fab命令来调用。譬如:

通过help对fab命令进行了解:

​```fab -h```

查看版本信息:

​```fab -V```

简单示例:迈出第一步

接下来做个最简单的示例示范一下吧

  1. 当前目录新建一个fabfile.py文件
  2. 写入一个最简单的函数
  3. 在命令行使用fab调用该函数

aaarticlea/png;base64,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*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" alt="sample code">

当你使用fab命令时,fabric模块会自动默认寻找当前路径下的fabfile.py文件

当然,fabfile.py只是一个默认选项,如果你想指定其他的文件,可以通过 fab -f xx.py 来指定。


常用参数

-l  显示定义好的任务函数名
-f 指定fab入口文件,默认入口文件名为fabfile.py.. 即指定fabfile文件
-g 指定网关(中转)设备,即HOST逗号分隔要操作的主机, 比如堡垒机环境,填写堡垒机IP即可.
-H 指定目标主机,多台主机用‘,’号分隔
-p 远程账号的密码,fab执行时默认使用root账户
-P 以异步并行方式运行多主机任务,默认为串行运行
-R 指定role(角色),以角色名区分不同业务组设备
-t 设置设备连接超时时间(秒)
-T 设置远程主机命令执行超时时间(秒)
-w 当命令执行失败,发出警告,而非默认中止任务。

其他参数:

--``set``=KEY=VALUE,...     逗号分隔,设置环境变量
--shortlist 简短打印可用命令
-c PATH 指定本地配置文件
-D 不加载用户known_hosts文件
-i PATH 指定私钥文件
-k 不加载来自~/.``ssh``下的私钥文件
--port=PORT 指定SSH连接端口
-R ROLES 根据角色操作,逗号分隔
-s SHELL 指定新shell,默认是``'/bin/bash -l -c'
--show=LEVELS 以逗号分隔的输出
--``ssh``-config-path=PATH SSH配置文件路径
-T N 设置远程命令超时时间,单位秒
-u USER 连接远程主机用户名
-x HOSTS 以逗号分隔排除主机
-z INT 并发进程数

常用的API

  • local ——执行本地命令
  • lcd——切换本地目录
  • cd——切换远程目录
  • run——执行远程命令
  • sudo——以sudo权限执行远程命令
  • put——上传本地文件到远程主机
  • get——从远程主机下载文件到本地
  • prompt——获取用户输入信息
  • confirm——获取提示信息确认
  • reboot——重启远程主机, reboot()
  • @task——装饰器,装饰的函数为fab可以调用的
  • @runs_once——装饰器,标识的函数只会执行一次

fabric全局属性设定

  • env.exclude_hosts——排除指定主机,同样以列表表示

  • env.port——定义目标主机端口,默认22

  • env.user——定义用户名

  • env.password——定义密码

  • env.passwords——与上一致,但是区别不同主机不同配置的应用情景。例如:

    env.passwords = {'root@x.x.x.x:22' : '1234','root@x.x.x.x:22' : '5678'}

  • env.getway——定义网关

  • env.deploy_release_dir——自定义全局变量

  • env.roledefs——定义角色分组


fabric装饰器

@hosts

指定被装饰的函数执行在哪台主机或哪些主机列表上。

hosts 接受host的参数列表 @hosts('h1','h2'),或者一个可迭代对象 @hosts(['h1', 'h2'])。

h1可以是一个IP,也可以是user@host

这个装饰器是设置函数的.hosts属性,在执行函数之前读取。

@paralle

fabric.decorators.parallel

强制被装饰的函数并行执行,而非同步执行。

优先级:高于全局变量env.parallel,高于装饰器@serial

@roles

定义(服务器)“角色”名,然后用于寻找对应的主机列表

env.roledefs.update({
'webserver': ['www1', 'www2'],
'dbserver': ['db1']
}) @roles('webserver', 'dbserver')
def my_func():
pass

roles接受参数列表,或单个的可迭代对象作为参数

不考虑控制台参数覆盖的话,my_func 将会在 webserverdbserver 角色对应的主机列表上执行。

@runs_once

组织函数多次执行的装饰器。

通过保存内部状态,使用该装饰器可以保证函数在每个Python解释器中只运行一次。任何被该装饰器装饰的函数在第二次,第三次.....第n次执行时都会静默失败,并返回初次运行的结果。

runs_once 无法和任务并行执行同时生效。

@serial

强制被装饰的函数顺序执行,不并行执行。

该装饰器效果的优先级高于全局变量env.parallel

若同时被 serialparallel 装饰器装饰,parallel 优先级更高。


判断模块:

from fabric.contrib.console import confirm

aaarticlea/png;base64,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" alt="sample code">


颜色模块:

from fabric.colors import *

![sample code][sample3]

ps:如果有人问:这个黄色为啥是这样的?颜色不太纯正?(我只能说,也许是觉得我的内心太纯洁吧。。)

好了,以上是fabric较常用部分,大家如需了解更多,可以点击下方链接,前往官方文档:

Fabric 官方文档

Fabric 官方文档-中文版

[sample3]: data:image/jpg;base64,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

上一篇:Python学习之dict和set


下一篇:此实现不是 Windows 平台 FIPS 验证的加密算法的一部分的解决办法方案