天天看點

用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

<code>#!/usr/bin/python2.6</code>

<code>from</code> <code>fabric.api </code><code>import</code> <code>*</code>

<code>from</code> <code>fabric.colors </code><code>import</code> <code>*</code>

<code>from</code> <code>fabric.context_managers </code><code>import</code> <code>*</code>

<code>user </code><code>=</code> <code>'ec2-user'</code>

<code>hosts </code><code>=</code> <code>[</code><code>'bidder1'</code><code>,</code><code>'bidder2'</code><code>,</code><code>'bidder3'</code><code>,</code><code>'bidder4'</code><code>,</code><code>'bidder5'</code><code>,</code><code>'bidder6'</code><code>,</code><code>'bidder7'</code><code>,</code><code>'bidder8'</code><code>]</code>

<code># hosts = ['bidder1',]</code>

<code>@task</code>

<code>def</code> <code>put_task():</code>

<code>    </code><code>print</code> <code>yellow(</code><code>"Put Local File to remote"</code><code>)</code>

<code>    </code><code>with settings(warn_only</code><code>=</code><code>True</code><code>):</code>

<code>        </code><code>put(</code><code>"/home/ec2-user/check_cpu_utili.sh"</code><code>,</code><code>"/home/ec2-user/check_cpu_utili.sh"</code><code>)</code>

<code>        </code><code>sudo(</code><code>"cp /home/ec2-user/check_cpu_utili.sh /usr/local/nagios/libexec"</code><code>)</code>

<code>        </code><code>sudo(</code><code>"chown nagios:nagios /usr/local/nagios/libexec/check_cpu_utili.sh"</code><code>)</code>

<code>        </code><code>sudo(</code><code>"chmod +x /usr/local/nagios/libexec/check_cpu_utili"</code><code>)</code>

<code>        </code><code>sudo(</code><code>"kill -9 `ps aux | grep nrpe | head -n1 | awk '{print $2}' `"</code><code>)</code>

<code>        </code><code>sudo(</code><code>"/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d"</code><code>)</code>

<code>        </code><code>print</code> <code>green(</code><code>"Put File success and restart nagios nrpe service!"</code><code>)</code>

<code>for</code> <code>host </code><code>in</code> <code>hosts:</code>

<code>    </code><code>env.host_string </code><code>=</code> <code>host</code>

<code>    </code><code>put_task()</code>

<code>#put_task()</code>

本文轉自 撫琴煮酒 51CTO部落格,原文連結:http://blog.51cto.com/yuhongchun/1681291,如需轉載請自行聯系原作者