django工程调用saltstack-api获取saltstack客户端的信息并展示
环境就是前面写的博客相同的配置
https://blog.****.net/lsysafe/article/details/88064472
变更部份
urls.py加入
url(r'^saltapipcinfos/', views.saltapipcinfos,name='saltapipcinfos'),
views.py加入
from django.template import RequestContext
再写多一个方法处理传处的URL请求:
def saltapipcinfos(request): if request.method=="POST": hostnames=request.POST.get("hostnames") try: sapi=saltapi.SaltAPI(url="https://192.168.99.86:8000/",username="saltuser",password="密码") #此处换成实际服务器的IP,API的端口,能够获取TOKEN_ID的用户名和密码 salt_client = hostnames salt_method = 'grains.items' reinfos2=sapi.salt_command(salt_client,salt_method) return render(request,"saltapipcinfos.html",locals(),context_instance=RequestContext(request)) except Exception: return render(request,"saltapipcinfos.html",{"login_err":"error"}) else: return render(request,"saltapipcinfos.html")
前端的HTML:
templates/saltapipcinfos.html文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form id="loginForm" action="{% url 'saltapipcinfos' %}" method="POST"> {% csrf_token %} 主机名&组名:<input type="text" class="form-control" name="hostnames" placeholder="主机名&组名"></br> <button class="btn btn-success btn-block" name="api1" type="submit"> <b>加载信息</b> </button> <h4 style="color: red"><br>{{ login_err }}<br></h4> {% for k,v in reinfos2.items %} {{ k }}主机的数据 <br> CPU型号:{{ v.cpu_model }} CPU核心数:{{ v.num_cpus }}<br> 内存:{{ v.mem_total }}<br> 网络地址:{{ v.ip_interfaces }}<br> ***:{{ v.serialnumber }}<br> 操作系统:{{ v.os_family }} {{ v.osfinger }}<br> <hr style="height:3px;border:none;border-top:3px double red;" /> <br> {% endfor %} <br> </form> </body> </html>
实际效果:
grains.items支持自定义,实际工作应用还可以扩展很多信息