`
m4774411wang
  • 浏览: 107580 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

fabric 批量执行服务器任务和自动化运维管理

 
阅读更多

上节我们已经把fabric给配置好了。这节我们通过fabric编写批量执行服务器任务和自动化运维管理

先介绍下fabric的特点,这个在官方文档里面已经介绍过:

1 代码可读性强,完全是python语言。
2 封装了本地、远程操,内置了一些方法。
3 可以根据需求灵活的定义参数。
4 角色定义,方便批量管理。

常用的配置参数:

env.host           -- 主机ip,当然也可以-H参数指定
env.password       -- 密码,打好通道的请无视
env.roledefs       -- 角色分组,比如:{'web': ['x', 'y'], 'db': ['z']}

fab -l             -- 显示可用的task(命令)
fab -H             -- 指定host,支持多host逗号分开
fab -R             -- 指定role,支持多个
fab -P             -- 并发数,默认是串行
fab -w             -- warn_only,默认是碰到异常直接abort退出
fab -f             -- 指定入口文件,fab默认入口文件是:fabfile/fabfile.py


常用的函数:

local('pwd')                     -- 执行本地命令
lcd('/tmp')                      -- 切换本地目录
cd('/tmp')                       -- 切换远程目录
run('uname -a')                  -- 执行远程命令,一般会提示叫你输入密码。
sudo('/etc/init.d/nginx start')  -- 执行远程sudo,注意pty选项
 

下面是写了一个远程复制文件和本地复制文件的函数。我把localhost既单做远程,还单做本地来操作。

#encoding=utf-8
#description:fabric代码测试。

from fabric.api import run,local,lcd,env,cd

env.hosts = ['localhost']

def localcopyfile():
   '''本地文件copy操作'''
  local('pwd')
  local('cp /home/laowang/workspace/info.txt /home/laowang/test')
  print 'local copy file success'


def remote():
   '''远程文件拷贝操作'''
  run('pwd')
  run('cp /home/laowang/workspace/test.py /home/laowang/test')
  print 'remote copy file success'

本地localcopyfile方法的执行结果:

fabric本地执行代码

远程remote方法的执行结果:

fabric远程执行代码

说明:

1 远程如果你没在代码里面设置好密码 的话,在执行脚本的时候,代码会提示让你输入密码,才能执行,而本地的话,则不会。

2 这个只是简单的演示,给运维的同学做一个铺垫。其实结合好linux自身的命令就可以做很多相关的批量执行服务器和自动化运维管理的任务了。

分享到:
评论

相关推荐

    ansible自动化运维实践

    ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能

    ansible自动化运维手册

    ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

    自动化运维工具

    ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

    Ansible-自动化运维工具

    Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

    https-github.com-yorkoliu-pyauto:python自动化运维

    第七章 系统批量运维管理器Fabric详解 第八章 从“零”开发一个轻量级WebServer 第九章 集中化管理平台Ansible详解 第十章 集中化管理平台Saltstack详解 第十一章 统一网络控制器Func详解 第十二章 Python...

    Ansible:自动化运维必须技术之一

    ansible是一个轻量级的运维自动化配置管理和配置工具,基于Python研发。集合了众多老牌运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 这是一款...

    fablinker:一种用于交互式操作多个服务器的工具。交互式多服务器自动化运维工具,简单易用

    Fablinker1.fablinker是什么fablinker是一个类似的开源自动化运维工具,在一台服务器上可管理控制多个远程主机。基于fabric开发,兼容python2.7,python3 +。相对的ansible和fabric,fablinker基于命令行交互操作,...

    ansible运维自动化

    当下有许多的运维自动化工具(配置管理),例如:Ansible、SaltStack、Puppet、Fabric等。Ansible一种集成IT系统的配置管理、应用部署、执行特定任务的开源平台,是AnsibleWorks公司名下的项目,该公司由Cobbler及Func...

    Python自动化运维和部署项目工具Fabric使用实例

    Fabric是一个Python库,只要目标机器支持ssh访问,就可以借助fabric来进行远程操作(如在host1上对host2远程运行shell命令),显然,由于fabric是个Python package,故其它Python package都可以被import到fabric特有...

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

    简介:Fabric提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:命令执行、文件上传、下载及完整执行日志输出等功能。Fabric在Paramiko的基础上做了更高一层的封装,操作起来会更加简单。使用pipinstall...

    如何利用Fabric自动化你的任务.pdf

    如何利用Fabric自动化你的任务

    运维管理器Fabric使用方法

    Fabric的安装 Fabric支持pip,easy_install或源码方式安装,很方便解决包依赖问题,(根据用户环境,自行选择pip或ease_install) pip install fabric easy_install fabric 源码安装不介绍了。 校验安装结果,如果导入...

    超级账本Farbic运维可视化监控教程

    本教程将介绍如何配置Fabric网络节点的运维管理服务,以及如何使用Prometheus和statsD/Graphite来可视化监控Hyperledger Fabric网络中各节点的实时运行指标。 相关教程: Fabric区块链Java开发详解 | Fabric区块链...

    Python 基于fabric模块批量远程主机操作

    Python】基于fabric模块批量远程主机操作,很好的系统开发技术

    如何利用Fabric自动化你的任务

    大家都知道Fabric是一个Python库,可以通过SSH在多个host上批量执行任务。你可以编写任务脚本,然后通过Fabric...这些功能非常适合应用的自动化部署,或者执行系统管理任务。本文将介绍如何利用Fabric自动化你的任务。

    Ansible运维自动化(配置管理工具)

    当下有许多的运维自动化工具(配置管理),例如:Ansible、SaltStack、Puppet、Fabric 等。Ansible一种集成IT系统的配置管理、应用部署、执行特定任务的开源平台,是AnsibleWorks 公司名下的项目,该公司由Cobbler及...

Global site tag (gtag.js) - Google Analytics