fabric监控linux自动化运维,自动化运维工具fabric的总结

fabric使用总结

Fabric和Fabric2在Pypi中就是同一个东西,fabric2只是Fabric的替代名称,为了便于使用备用名称进行安装。Fabric2和之前的Fabric1相比,完全重写了,接口和功能都有很大改动,官网也不建议继续用Fabric1,建议升级到Fabric2。而最新版也早就支持Python 3.4+,和之前的Python2.7。

但目前各个社区对fabric2的介绍很少,基本都是fabric1,fabric2与fabric1的接口基本是完全不同,因此目前使用的是fabric1

安装fabric1的方法:

pip install 'fabric <2.0'

由于 fabric 不只是一个Python 模块,fabric 还是一个命令行工具,可以通过fab -h进行命令的了解

使用方式

新建fable.py文件:

from fabric.api import *

from fabric.colors import *

#env.parallel = True 这个参数的含义是,对于批量机器的某个任务,所有机器并行执行;

#默认是根据机器列表一个机器一个机器执行;

env.warn_only=True

#可以把退出换为警告,以提供更灵活的错误处理。

#如果设置为False,则一条命令运行失败会就会退出,不再执行后面的命令。

#自动登录机器的用户名和密码

#env:保存用户配置的字典

#(保存了相关的配置,比如登录用户名 env.user,密码 env.password,端口 env.port 等,

#如果没有指定用户名那么默认使用当前用户,端口使用22)

env.user = "username"

env.password = "password"

#以组为单位管理机器

env.roledefs = {

'group1':

[

'p1.test.cn',

'p2.test.cn',

'p3.test.cn',

'p4.test.cn',

'p5.test.cn',

'p6.test.cn',

'p7.test.cn',

'p8.test.cn',

'p9.test.cn',

'p10.test.cn',

],

'log':

[

'log1.test.cn',

'log2.test.cn',

],

}

#以上定义了两个组,一个组叫group1,包含了十台机器,一个组叫log,包含了两台机器;

@roles("group1")

def check_ps():

run("ps -ef | grep demo") #直接在远程机器上以登录账户username的权限执行指令

put("./start.sh", "/home/wangzijie") #将本地当前目录下的start.sh文件复制到远程机器的/home/wangzijie目录下

put("./update.sh", "/etc/init.d/update.sh", use_sudo = True) #将本地当前目录下的start.sh文件复制到远程机器的/etc/init.d目录下;

#由于这个目录只有root有写权限,因此use_sudo = True可以以sudo的权限来写,但需要有这台机器的sudo权限才可以

sudo("/etc/init.d/update.sh start") #以root的角色来执行update.sh脚本

sudo("/home/wangzijie/start.sh", user = "cloud") #以特定组cloud的角色来执行命令,需要在目标机器有cloud的权限

执行脚本

fab check_ps

该命令需要在fable.py所在目录下执行,会对所有的group1机器运行check_ps方法中的所有命令,按照list的顺序执行,若需要所有机器并行执行,添加env.parallel = True即可

fab 命令执行时,默认引用一个名为 fabfile.py 的文件,我们也可以通过 -f 来进行指定。

参数传递

def hello(name, value):

print "Hello Fabric! %s=%s" % (name,value)

执行时:

fab hello:name=Year,value=2016

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值