当前位置: 代码迷 >> python >> Check_MK语法使python添加新主机
  详细解决方案

Check_MK语法使python添加新主机

热度:41   发布时间:2023-06-13 13:40:34.0

我正在使用Check_MK,并且试图实现一个通过cfengine运行的python脚本,以自动添加新安装的主机。 使用pycurl或运行和外部curl时遇到一些麻烦。

我希望能够pycurl的命令的示例是:

curl“ ” -d'request = {“ attributes”:{“ alias”:“ winxp_1的别名”,“ tag_agent” :“ cmk-agent”,“ tag_criticality”:“产品”,“ ipaddress”:“ 127.0.0.1”},“主机名”:“ winxp_1”,“文件夹”:“ os / windows”}'

在终端上工作正常

但我找不到正确的语法来使其在python脚本中运行。

谢谢你的帮助。

这对我有用。

注意:用户必须存在。 “文件夹”必须存在; 我在样本中加上“ /”。

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)

对不起我的英语不好。

与Daniel一样,但具有变量:

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))