1. 安装

    • pip3 install fabric3
  2. 创建软连接

    • find / -type f -name "fab"
    • /usr/local/python3/bin/fab
    • ln -s /usr/local/python3/bin/fab /usr/bin/fab

如果文件名为fabfile.py ,就不需要使用-f 指定文件名

  1. 入门示例
#fabfile.py
from fabric.api import run def host_type():
run('uname -s')

启动

lyt@ubuntu:~/tmp/fab$ fab -H 127.0.0.1 host_type
[127.0.0.1] Executing task 'host_type'
[127.0.0.1] run: uname -s
[127.0.0.1] Login password for 'lyt':
[127.0.0.1] out: Linux
[127.0.0.1] out: Done.
Disconnecting from 127.0.0.1... done.
lyt@ubuntu:~/tmp/fab$ fab -H 127.0.0.1 host_type
[127.0.0.1] Executing task 'host_type'
[127.0.0.1] run: uname -s
[127.0.0.1] Login password for 'lyt':
[127.0.0.1] out: Linux
[127.0.0.1] out:

fabric常用参数

- -l : 显示定义好的任务函数名

- -f : 指定fab入口文件,默认入口文件名为fabfile.py

- -H : 指定目标主机,多台主机用","号分割

fabric常用API

- local : 执行本地命令,如:local('uname -s')

- lcd : 切换本地目录,如:lcd('/home')

- cd : 切换远程目录,如:cd('/etc')

- run : 执行远程命令,如:run('free -m')

- sudo : sudo方式执行远程命令,如:sudo('touch /abc')

- put : 上传本地文件到远程主机,如:put('/hello', '/home/lyt/hello')

- get : 从远程主机下载文件到本地,如:get('/home/python/world', '/home/lyt/world')

- reboot : 重启远程主机,如:reboot()

- @task : 函数装饰器,标识的函数为fab可调用的,非标记的对fab不可见,纯业务逻辑

- @runs_once : 函数装饰器,标识的函数只会执行一次,不受多台主机影响

fabric全局属性设定

- env.host : 定义目标主机,如:env.host=['192.168.17.192', '192.168.17.193']

- env.user : 定义用户名,如:env.user="root"

- env.port : 定义目标主机端口,默认为22,如:env.port="22"

- env.password : 定义密码,如:env.password="199000"

- env.passwords : 不同的主机不同的密码,如:env.passwords={'lyt@192.168.17.192:22':'199000', 'lyt@192.168.17.193:22':'python'}

参考链接1 Python3自动化运维之Fabric模版详解

参考链接2 https://github.com/fabric/fabric/tree/1.13.1

参考链接3 python模块fabric踩坑记录/

Python3 模块 -- Fabric自动化模版的更多相关文章

  1. 使用Fabric模块实现自动化运维

    一.安装软件 简介:Fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:命令执行.文件上 ...

  2. Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块

    Python第十五天  datetime模块 time模块   thread模块  threading模块  Queue队列模块  multiprocessing模块  paramiko模块  fab ...

  3. (转)Python3 模块3之 Urllib之 urllib.parse、urllib.robotparser

    原文:https://blog.csdn.net/qq_36148847/article/details/79153738 https://blog.csdn.net/zly412934578/art ...

  4. python系列十二:python3模块

    #!/usr/bin/python # This Python file uses the following encoding: gbk #Python3 模块 '''用 python 解释器来编程 ...

  5. python017 Python3 模块

    Python3 模块在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了.为此 Python 提供了一个办法, ...

  6. 吴裕雄--天生自然python学习笔记:Python3 模块

    Python3 模块 在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了. 为此 Python 提供了一个办 ...

  7. python使用Fabric模块实现自动化运维

    简介:Fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:命令执行.文件上传.下载及完整 ...

  8. python3安装Fabric模块

    streamparse 项目的issuehttps://github.com/Parsely/streamparse/issues/172 fabric的一个支持Python3.4的forkhttps ...

  9. 使用Fabric自动化你的任务

    Fabric是一个Python库,可以通过SSH在多个host上批量执行任务.你可以编写任务脚本,然后通过Fabric在本地就可以使用SSH在大量远程服务器上自动运行.这些功能非常适合应用的自动化部署 ...

随机推荐

  1. 关于canvas补充说明

    上篇文章提到的canvas画布,用到f2组件,组件地址https://gw.alipayobjects.com/os/antv/assets/f2/3.0.0/f2.js或利用npm下载:npm in ...

  2. javabean转换为map对象

    在调用第三方接口发现对方使用map进行接收(不包括秘钥等),将bean类属性转换为map,直接贴代码: /** * JavaBean对象转化成Map对象 * * @param javaBean */p ...

  3. 移动端H5页面禁止长按复制和去掉点击时高亮

    /*设置IOS页面长按不可复制粘贴,但是IOS上出现input.textarea不能输入,因此将使用-webkit-user-select:auto;*/ *{ -webkit-touch-callo ...

  4. JS prototype chaining(原型链)整理中······

    初学原型链整理 构造器(constructor).原型(prototype).实例(instance); 每一个构造器都有一个prototype对象,这个prototype对象有一个指针指向该构造器: ...

  5. mvc开发网站打开慢总结

    开始学习mvc开发网站的时候,看了传智博客的视频教程,其中学习了一个和牛逼的框架,开始激动的深入学习,学完后却发现其实那套框架太重并不适合一些中小型的网站开发,并且也使用导航属性关联外键,导致打开网站 ...

  6. jasperreports实现pdf文档的生成

    1.导入jar包(pom.xml构建) <dependencies> <dependency> <groupId>com.lowagie</groupId&g ...

  7. 【repost】Python正则表达式

    星光海豚   python正则表达式详解 正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技 ...

  8. 理解jsonp劫持漏洞

    JSONP劫持 存在漏洞的链接格式类似于以下这种: http://www.xxx.com/xxx.do?callback=info 参数名也常见有cb jsoncb call jsoncall cba ...

  9. java0618

    1. java的基本数据类型,各占多少字节? byte 8位 short 16位 int 32位 long 64位 float 32位 double 64位 boolean 1位 char 16位 2 ...

  10. Delphi 中的 IfThen 函数

    问题来源: http://www.cnblogs.com/del/archive/2008/11/14/1120015.html#1370413 StrUtils 单元和 Math 单元 分别有一个 ...