通过API新建zabbix主机

#!/usr/bin/env python2.7
#coding=utf-8
import json
import urllib2
# based url and required header
url = "http://localhost/zabbix/api_jsonrpc.php"
header = {"Content-Type": "application/json"}
# auth user and password
data = json.dumps(
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
    "user": "Admin",
    "password": "zabbix"
},
"id": 0
})
# create request object
request = urllib2.Request(url,data)
for key in header:
    request.add_header(key,header[key])
# auth and get authid
try:
    result = urllib2.urlopen(request)
except:
    print "Auth Failed, Please Check Your Name And Password:"
else:
    response = json.loads(result.read())
    result.close()
    Auth_id = response['result']
   
#create host
if Auth_id:
    file = open("server_info", "r+")
    if file:
        # line = file.readlines()
        # for each_line in line:
        #     arr = each_line.split()
        #     ip = arr[0]
        #     server_name = arr[1]
        for line in file:
            list1 = line.split()
            ip = list1[0]
            server_name = list1[1] 


            # request json
            data = json.dumps(
            {
                "jsonrpc":"2.0",
                "method":"host.get",
                "params":{
                    "output":["hostid","name"],
                    "filter":{"host":server_name}
                },
                "auth":Auth_id,
                "id":1,
            })
           
            # create request object
            request = urllib2.Request(url,data)
            for key in header:
                request.add_header(key,header[key])


            # get host list
            result = urllib2.urlopen(request)
            response = json.loads(result.read())
            result.close()
            host_name = response['result']
            
            #print host_name,"- - - -"
            if host_name:
                print ip,server_name," had been created ! "
                continue
            else:
                # request json
                data = json.dumps(
                {
                    "jsonrpc":"2.0",
                    "method":"host.create",
                    "params":{
                                "host": server_name,
                                "interfaces":[{ "type": 1,
                                                "main": 1,
                                                "useip": 1,
                                                "ip": ip,
                                                "dns": "",
                                                "port": "10050"}],
                                "groups": [{"groupid": "2"}],
                                "templates": [{"templateid": "10050"}]
                                },
                    "auth":Auth_id,
                    "id":1,
                }
                )
                # create request object
                request = urllib2.Request(url,data)
                for key in header:
                    request.add_header(key,header[key])
                # get host list
                try:
                    result = urllib2.urlopen(request)
                except:
                        print 'We failed to reach a server.'
                else:
                    response = json.loads(result.read())
                    result.close()
                    print server_name,'has been created !'
    file.close
else:
    print 'We failed to reach a server.'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值