0

私は Check_MK を使用しており、新しくインストールされたホストを自動的に追加するために、cfengine を介して実行する Python スクリプトを実装しようとしていました。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"}, "hostname": "winxp_1", "folder": "os/windows"}'

これは端末から正常に動作します

しかし、Pythonスクリプト内から機能させるための正しい構文が見つかりません。

助けてくれてありがとう。

4

2 に答える 2

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)

私の英語でごめんなさい。

于 2015-10-24T11:42:32.420 に答える
-1

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))
于 2015-11-02T14:40:09.970 に答える