实验:在jupyter上远程调用salt-master上的命令
salt-master上的salt-api环境已经完成(不清除的可以看我上一篇文章)
获取token值信息
##导入模块
import requets
import json
##定义: salt_login_url, salt_url, salt_user, user_password
salt_login_url = 'https:192.168.220.200:8001//login' #salt-api的IP地址:salt-api的接口/
salt_url = 'https://192.168.220.200:8001' #salt-api的IP地址:salt-api的接口
salt_user = 'saltapi' #创建用作管理salt-api的用户
salt_password = 'saltapi' #saltapi用户的密码
#获取salt-api的token值
def gettoken():
data = {"username": salt_user,
"password": salt_password
"eauth": pam
}
head = {"Content-Type":"application/json"}
res = requests.post(url=salt_login_url, data=json.dumps(data), headers=head, verify=False)
print(res.test)
if __name__ == '__main__':
gettoken()
只获取token值
import requests
import json
salt_login_url = "https://192.168.220.200:8001/login"
salt_url = "https://192.168.220.200:8001"
salt_user = "saltapi"
salt_password = "saltapi"
requests.packages.urllib3.disable_warnings()
#用户认证,获取用户令牌
def gettoken():
data = {"username": salt_user,
"password": salt_password,
"eauth": "pam"
}
head = {"Content-Type":"application/json"}
res = requests.post(url=salt_login_url, data=json.dumps(data), headers=head, verify=False)
print(json.loads(res.text).get("return")[0].get("token"))
#print(res.text)
if __name__ == '__main__':
gettoken()
执行test.ping命令
import requests
import json
salt_login_url = "https://192.168.220.200:8001/login"
salt_url = "https://192.168.220.200:8001"
salt_user = "saltapi"
salt_password = "saltapi"
#用户认证,获取用户令牌
def gettoken():
data = {"username": salt_user,
"password": salt_password,
"eauth": "pam"
}
head = {"Content-Type":"application/json"}
res = requests.post(url=salt_login_url, data=json.dumps(data), headers=head, verify=False)
return json.loads(res.text).get("return")[0].get("token")
#print(res.text)
if __name__ == '__main__':
gettoken()
def testping():
user_token = gettoken()
head = {"Content-Type": "application/json", "X-Auth-Token": user_token}
#"client":"local"同步调用
#"tgt":"*"所有被控制端
#"fun":"方法名称"
#"arg":"模块参数"
data = {"client":"local","tgt":"*","fun":"test.ping"}
res = requests.post(url=salt_url,data=json.dumps(data),headers=head,verify=False)
#print(res.text)
for k, v in json.loads(res.text).get("return")[0].items():
print("客户端%s测试通信结果为:" % k)
print(v)
print("-" * 30)
if __name__ == '__main__':
testping()