腳本内容如下;
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<code>#!/usr/bin/python</code>
<code>#-*- coding:utf8 -*-</code>
<code>import</code> <code>json,sys,argparse</code>
<code>from zabbix_api </code><code>import</code> <code>ZabbixAPI</code>
<code>server = </code><code>"http://172.16.206.128/zabbix"</code>
<code>username = </code><code>"Admin"</code>
<code>password = </code><code>"zabbix"</code>
<code>zapi = ZabbixAPI(server=server, path=</code><code>""</code><code>, log_level=0)</code>
<code>zapi.login(username, password)</code>
<code>def get_args():</code>
<code> </code><code>parser = argparse.ArgumentParser()</code>
<code> </code><code>parser.add_argument(</code><code>"-H"</code><code>, </code><code>"--host"</code><code>, help=</code><code>"host name"</code><code>)</code>
<code> </code><code>parser.add_argument(</code><code>"-t"</code><code>, </code><code>"--templates"</code><code>, help=</code><code>"template name"</code><code>)</code>
<code> </code><code># 解析所傳入的參數</code>
<code> </code><code>args = parser.parse_args()</code>
<code> </code><code>if</code> <code>not args.host:</code>
<code> </code><code>args.host = raw_input(</code><code>'host: '</code><code>)</code>
<code> </code><code>if</code> <code>not args.templates:</code>
<code> </code><code>args.templates = raw_input(</code><code>'templates: '</code><code>)</code>
<code> </code><code>return</code> <code>args</code>
<code>def get_host_id(host):</code>
<code> </code><code>get_host_id = zapi.host.get(</code>
<code> </code><code>{</code>
<code> </code><code>"output"</code><code>: </code><code>"hostid"</code><code>,</code>
<code> </code><code>"filter"</code><code>: {</code>
<code> </code><code>"host"</code><code>:host.</code><code>split</code><code>(</code><code>","</code><code>)</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code>)</code>
<code> </code><code>host_id = []</code>
<code> </code><code>host_id.append([I[</code><code>'hostid'</code><code>] </code><code>for</code> <code>I </code><code>in</code> <code>get_host_id])</code>
<code> </code><code>return</code> <code>host_id[0]</code>
<code>def get_templates_id(templates):</code>
<code> </code><code>templates_id = zapi.template.get(</code>
<code> </code><code>{</code>
<code> </code><code>"output"</code><code>: </code><code>"templateid"</code><code>,</code>
<code> </code><code>"filter"</code><code>: {</code>
<code> </code><code>"host"</code><code>:templates.</code><code>split</code><code>(</code><code>","</code><code>)</code>
<code> </code><code>}</code>
<code> </code><code>return</code> <code>templates_id</code>
<code> </code>
<code>def template_massadd(template_id,host_id):</code>
<code> </code><code>template_add = zapi.template.massadd(</code>
<code> </code><code>"templates"</code><code>: template_id,</code>
<code> </code><code>"hosts"</code><code>: host_id</code>
<code> </code><code>return</code> <code>"host add template success"</code>
<code> </code>
<code>if</code> <code>__name__ == </code><code>"__main__"</code><code>:</code>
<code> </code><code>args = get_args()</code>
<code> </code><code>host_id = get_host_id(args.host)</code>
<code> </code><code>template_id = get_templates_id(args.templates)</code>
<code> </code><code>if</code> <code>len(host_id) == len(args.host.</code><code>split</code><code>(</code><code>','</code><code>)):</code>
<code> </code><code>if</code> <code>len(template_id) == len(args.templates.</code><code>split</code><code>(</code><code>','</code><code>)):</code>
<code> </code><code>print template_massadd(template_id,host_id)</code>
<code> </code><code>else</code><code>:</code>
<code> </code><code>print </code><code>"template not exist"</code>
<code> </code><code>else</code><code>:</code>
<code> </code><code>print </code><code>"host not exist"</code>
腳本需要傳遞兩個參數:host(主機名)和templates(模闆名稱),主機可以為多個,用逗号“,”隔開,模闆也可以為多個,同樣用逗号“,”隔開。
用法:
<code>python template_massadd.py --host=</code><code>"abc,client"</code> <code>--</code><code>"templates"</code><code>=</code><code>"Template OS Linux,Templates App MySQL"</code>
<code>host add template success</code>
本文轉自 曾哥最愛 51CTO部落格,原文連結:http://blog.51cto.com/zengestudy/1853581,如需轉載請自行聯系原作者