用Fabric自動推送nagios client腳本

線上的Nagios Client端的監控腳本因爲業務需求又發生改動了,某業務集羣差不多就有23臺(下面的list只列出了8臺),而且其中的一個業務需求腳本前前後後改動了4次,如果手動操作的話會累死人,幸虧有Fabric這個輕量級的自動化運維工具,代碼如下:

#!/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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章