利用Python脚本获取令牌

6.1 问题

编写一个get_token.py脚本,实现以下功能:

  1. 编写get_token函数
  2. 该函数接受zabbix服务器url、用户名和密码作为参数
  3. 函数返回值为用户令牌token

6.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:编写脚本get_token.py,获取身份令牌

1)从zabbix官方文档中使用 user.login 方法登录并获取身份验证令牌请求,如图-8所示:

官方文档地址如下:

https://www.zabbix.com/documentation/3.4/zh/manual/api/reference/user/login

利用Python脚本获取令牌_第1张图片

图-14

2)编写get_token.py文件

copytextpop-up

[root@localhost day12]# vim get_token.py
#!/usr/bin/env python3

import requests
import json    # python中的dict类型要转换为json格式的数据需要用到json库

#要访问的网址
url = 'http://192.168.4.2/zabbix/api_jsonrpc.php'
#请求头部信息
headers = {'Content-Type': 'application/json-rpc'}
# data是从官方文档处获得的
data = {
# API使用的JSON-RPC协议的版本; Zabbix API实现JSON-RPC版本2.0
"jsonrpc": "2.0",
"method": "user.login",    #调用的API方法
# params将被传递给API方法的参数
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1    #请求的任意标识符
}
#使用requests发送请求,访问指定网站,向url发送data请求,r收到的返回响应为json格式
#将data转成json格式
r = requests.post(url, headers=headers, data=json.dumps(data))
#将json格式解码
print(r.json()))
[root@localhost day12]# vim get_token.py
#!/usr/bin/env python3

import requests
import json	# python中的dict类型要转换为json格式的数据需要用到json库

#要访问的网址
url = 'http://192.168.4.2/zabbix/api_jsonrpc.php'
#请求头部信息
headers = {'Content-Type': 'application/json-rpc'}
# data是从官方文档处获得的
data = {
# API使用的JSON-RPC协议的版本; Zabbix API实现JSON-RPC版本2.0
    "jsonrpc": "2.0",
    "method": "user.login",	#调用的API方法
# params将被传递给API方法的参数
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1	#请求的任意标识符
}
#使用requests发送请求,访问指定网站,向url发送data请求,r收到的返回响应为json格式
#将data转成json格式
r = requests.post(url, headers=headers, data=json.dumps(data))
#将json格式解码
print(r.json()))

步骤四:测试脚本执行,获取用户令牌token

copytextpop-up

[root@localhost day12]# python3 get_token.py
{"jsonrpc": "2.0", "result": "0424bd59b807674191e7d77572075f33", "id": 1}

你可能感兴趣的:(Python,Python脚本,Devops)