用Fabric自动推送nagios client脚本

简介:

线上的Nagios Client端的监控脚本因为业务需求又发生改动了,某业务集群差不多就有23台(下面的list只列出了8台),而且其中的一个业务需求脚本前前后后改动了4次,如果手动操作的话会累死人,幸亏有Fabric这个轻量级的自动化运维工具,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/python2.6
from  fabric.api  import  *
from  fabric.colors  import  *
from  fabric.context_managers  import  *
 
user  =  'ec2-user'
hosts  =  [ 'bidder1' , 'bidder2' , 'bidder3' , 'bidder4' , 'bidder5' , 'bidder6' , 'bidder7' , 'bidder8' ]
# hosts = ['bidder1',]
 
@task
def  put_task():
     print  yellow( "Put Local File to remote" )
     with settings(warn_only = True ):
         put( "/home/ec2-user/check_cpu_utili.sh" , "/home/ec2-user/check_cpu_utili.sh" )
         sudo( "cp /home/ec2-user/check_cpu_utili.sh /usr/local/nagios/libexec" )
         sudo( "chown nagios:nagios /usr/local/nagios/libexec/check_cpu_utili.sh" )
         sudo( "chmod +x /usr/local/nagios/libexec/check_cpu_utili" )
         sudo( "kill -9 `ps aux | grep nrpe | head -n1 | awk '{print $2}' `" )
         sudo( "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" )
         print  green( "Put File success and restart nagios nrpe service!" )
 
for  host  in  hosts:
     env.host_string  =  host
     put_task()
#put_task()






本文转自 抚琴煮酒 51CTO博客,原文链接:http://blog.51cto.com/yuhongchun/1681291,如需转载请自行联系原作者
目录
相关文章
|
10月前
|
Ubuntu Linux Shell
minio服务端以Linux服务形式安装
minio服务端以Linux服务形式安装
600 24
|
10月前
|
监控 Java 数据库
Zabbix【部署 05】 Docker部署Zabbix Server Agent Agent2 Web interface及 Java-Gate-Way(详细启动脚本及踩坑记录)不定时更新
Zabbix【部署 05】 Docker部署Zabbix Server Agent Agent2 Web interface及 Java-Gate-Way(详细启动脚本及踩坑记录)不定时更新
683 0
|
10月前
|
消息中间件 Kafka Shell
Linux【脚本 02】shell脚本离线安装配置Zookeeper及Kafka并添加service服务和开机启动(脚本分析)
Linux【脚本 02】shell脚本离线安装配置Zookeeper及Kafka并添加service服务和开机启动(脚本分析)
112 0
|
jenkins Java 持续交付
解决Jenkins使用Publish Over SSH插件上传失败的问题(可能原因之一)
解决Jenkins使用Publish Over SSH插件上传失败的问题(可能原因之一)
557 0
|
jenkins Linux 网络安全
使用Jenkins通过Publish Over SSH插件远程控制主机执行脚本
使用Jenkins通过Publish Over SSH插件远程控制主机执行脚本
278 0
|
监控
Zabbix实战之客户端自动发现
Zabbix实战之客户端自动发现
209 0
|
网络安全 网络协议
puppet 配置 1. 服务器, 客户端配置说明
puppet 作用 1. 适合于在主机完成初始化安装后 (可通过 cobbler + kickstart 进行自动化安装部署) , 进行统一的管理 2. 常见管理包括, 用户, 系统基础配置, 服务, 进程, 软件等等 3. 适合于大规模对大量主机执行重复的相同的配置, 简化了管理员分别对主机执行重复的枯燥的配置, 避免了因为手误, 因为其他原因对主机执行错误
1418 0
|
Java jenkins 持续交付
jenkins 完成 项目配置文件修改并远程发布包
jenkins 完成 项目配置文件修改并远程发布包
514 0
jenkins 完成 项目配置文件修改并远程发布包
|
SQL 弹性计算 分布式计算
E-MapReduce客户端安装和卸载工具,实现Gateway功能
E-MapReduce客户端安装和卸载工具,主要用于集群外的ECS(已经存在)中需要使用hadoop,hive等客户端命令工具。 目前云平台提供的gateway只能重新创建ECS进行部署,而不支持在已经创建的Ecs中部署。
3191 0
|
网络安全 数据安全/隐私保护
Ansible服务端安装与配置(学习笔记一)
1、ansible是自动化运维工具,基于Python开发,实现批量部署、配置、运行等。 2、ansible基于SSH端口,客户端不需要安装,只需要在服务端安装。
1385 0