Python的批量远程管理和部署工具Fabric用法实例

 更新时间:2015年01月23日 10:03:06   投稿:shichen2014   我要评论

这篇文章主要介绍了Python的批量远程管理和部署工具Fabric用法,实例分析了Fabric的功能与具体使用方法,需要的朋友可以参考下

本文实例讲述了Python的批量远程管理和部署工具Fabric用法。分享给大家供大家参考。具体如下:

Fabric是Python中一个非常强大的批量远程管理和部署工具,常用于在多个远程PC上批量执行SSH任务.

常见的使用方法大概总结如下:

1. 首先,要将批量执行的任务写入到一个fabfile.py中,

复制代码 代码如下:
# -*- coding:utf-8 -*- 
 
from fabric.api import run, local, roles, env, cd 
env.hosts=[ 
    '192.168.1.110', 
    '192.168.1.111', 
    '192.168.1.112' 

env.user="username" 
env.password="password" 
env.port=22 
#env.parallel=True 
#env.skip_bad_hosts=True 
#env.timeout=1 
#env.warn_only=True 
 
# local用于在本地PC执行命令. 
# run用于在远程PC执行命令. 
def ls(): 
    with cd('/home/workspace/project'): 
        local('touch 1.log') 
    with cd('/home/workspace/project2'): 
        local('touch 2.log')  
 
#@parallel, 可以设置是否并行执行 
#@serial 
def pull(): 
    with cd('/home/workspace/project'): 
        run('git pull') 
 
def clean(): 
    with cd('/home/workspace/project'): 
        run('bash clean.sh') 
 
@hosts('192.168.1.113') 
def robot(device): 
    with cd('/home/workspace/project'): 
        run('bash run.sh %s robot && sleep 1' % device)

以上就是一个简单的fabfile.py, 其中定义的函数均对应一个fab中的可执行命令.
其中有两个小的注意事项:

A.在远程机器的run.sh中如果要执行一些非系统常见的工具,最好指定为绝对路径. 且可以适当地使用nohup的方式.

B.执行其他脚本或者命令后最好加上sleep,以防止Fabric过早地关闭与远程PC连接的session,而导致执行任务失败.

2. 执行过程: fabric执行会默认选取当前目录下的fabfile.py文件,

复制代码 代码如下:
fab clean
fab pull
fab robot:hosts="192.168.1.115",device=5560

可以通过hosts参数给fabric传入指定的远程PC, 该hosts参数的优先级比env.hosts的要高.

也可以给fab中的命令传递参数,如device.

此外,还可以通过fab -f otherFabFile.py clean来指定其他的fabric文件.

如果需要并行执行的话,也可以传递参数如fab -P -z 15 pull, 15表示并行执行的PC数量.

以上,只是一些简单的用法,如果需要更高级的用法,可以关注该项目的github主页 https://github.com/fabric/fabric.

希望本文所述对大家的Python程序设计有所帮助。

相关文章

  • Python2和Python3的共存和切换使用

    Python2和Python3的共存和切换使用

    这篇文章主要介绍了Python2和Python3的共存和切换使用,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • 浅谈numpy数组中冒号和负号的含义

    浅谈numpy数组中冒号和负号的含义

    下面小编就为大家分享一篇浅谈numpy数组中冒号和负号的含义,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python中random模块生成随机数详解

    Python中random模块生成随机数详解

    本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下
    2016-03-03
  • Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例

    Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例

    这篇文章主要介绍了Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • 使用Python的Flask框架构建大型Web应用程序的结构示例

    使用Python的Flask框架构建大型Web应用程序的结构示例

    虽说Flask是一个以轻量级著称的框架,但也为大型Web应用提供了诸如单元测试与数据库迁移等许多便利的功能,这里我们来看一下使用Python的Flask框架构建大型Web应用程序的结构示例:
    2016-06-06
  • python实现逻辑回归的方法示例

    python实现逻辑回归的方法示例

    这篇文章主要介绍了python实现逻辑回归的方法示例,这是机器学习课程的一个实验,整理出来共享给大家,需要的朋友可以参考学习,下来要一起看看吧。
    2017-05-05
  • 详解Python如何生成词云的方法

    详解Python如何生成词云的方法

    这篇文章主要介绍了详解Python如何生成词云的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • python对列进行平移变换的方法(shift)

    python对列进行平移变换的方法(shift)

    今天小编就为大家分享一篇python对列进行平移变换的方法(shift),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Django框架视图介绍与使用详解

    Django框架视图介绍与使用详解

    这篇文章主要介绍了Django框架视图介绍与使用,结合实例形式分析了Django框架视图的功能、配置、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-07-07
  • Python2与Python3的区别实例总结

    Python2与Python3的区别实例总结

    这篇文章主要介绍了Python2与Python3的区别,结合实例形式总结分析了Python2与Python3打印输出、编码、数值运算、异常处理等使用区别,需要的朋友可以参考下
    2019-04-04

最新评论