Skip to content

Instantly share code, notes, and snippets.

@calston
Created November 28, 2012 11:36
Show Gist options
  • Save calston/4160633 to your computer and use it in GitHub Desktop.
Save calston/4160633 to your computer and use it in GitHub Desktop.
Add puppet host to Zabbix
#!/usr/bin/python
import urllib, json, httplib, socket, sys, os
def httpRequest(request):
body = json.dumps(request)
headers = {"Content-type": "application/json"}
conn = httplib.HTTPSConnection(host, 443)
conn.request("POST", "/api_jsonrpc.php", body, headers)
response = conn.getresponse()
data = response.read()
print request, response.status, response.reason, data
conn.close()
return json.loads(data).get('result', None)
me = os.popen('/usr/bin/facter --puppet fqdn').read().strip('\n')
authToken = httpRequest({"jsonrpc": "2.0","method":"user.authenticate","params":{"user":"","password":""},"auth": None,"id":0})
host = httpRequest({"jsonrpc":"2.0","method":"host.get","params":{"output":"extend","filter":{"host":me}},"auth":authToken,"id":1})
if host:
print "Host exists"
sys.exit(0)
else:
print "Creating host"
createHost = {"jsonrpc":"2.0", "method":"host.create",
"params":{
"host":me,
"ip":"0.0.0.0",
"port":10050,
"useip":0,
"groups":[{"groupid":19}],
"templates":[{"templateid":10207}]
},
"auth":authToken,
"id":3
}
create = httpRequest(createHost)
print create
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment