我正在使用Check_MK,我正在尝试实现一个python脚本,通过cfengine运行,自动添加新安装的主机。 我在使用pycurl或运行和外部卷曲方面遇到了一些麻烦。
我希望能够pycurl的命令示例是:
curl“http://10.20.30.40/mysite/check_mk/webapi.py?action=add_host&_username=autouser&_secret=mysecret” - d'request = {“attributes”:{“alias”:“winxp_1的别名”,“tag_agent”:“cmk-agent”,“tag_criticality”:“prod”, “ipaddress”:“127.0.0.1”},“主机名”:“winxp_1”,“文件夹”:“os / windows”}'
终端
可以正常使用但我无法找到正确的语法,使其在python脚本中运行。
感谢您的帮助。
答案 0 :(得分:0)
这适合我。
注意:用户必须存在。 "文件夹"必须存在;我把" /"在样本中。
import urllib2
req = urllib2.Request("http://localhost/mysite/check_mk/webapi.py?action=add_host&_username=autouser&_secret=mysecret",
headers = {"Content-Type": "application/x-www-form-urlencoded"},
data = 'request={"attributes":{"alias": "Alias of winxp_1", "tag_agent": "cmk-agent", "tag_criticality": "prod", "ipaddress": "127.0.0.1"}, "hostname": "winxp_1", "folder": "/"}')
f = urllib2.urlopen(req)
抱歉我的英文。
答案 1 :(得分:-1)
像丹尼尔一样,但有变量:
url = "/mysite/check_mk/webapi.py"
request_url = "%s%s?action=add_host&_username=%s&_secret=%s" % ( check_mk_host, url, check_mk_username, check_mk_password )
request_data = {}
request_data['attributes'] = {}
request_data['attributes']['tag_agent'] = 'cmk-agent'
request_data['hostname'] = vm
request_data['folder'] = "/Auto"
request_data = json.dumps(request_data)
data = "request=%s" % request_data
br = mechanize.Browser()
br.open(mechanize.Request(request_url, data=data))