因为之前学习了saltstack,所以有个简单的想法,想写个salt management UI,这样就不用输入繁琐的命令,方便管理和运维。
由于没多少时间,就做了个简单的demo,仅仅写了登陆,key管理,远程执行minion的cmd命令的功能,在这里记录下。
涉及框架
demo采用springMVC + velocity + bootstrap框架。
方法介绍
原理主要还是通过调用salt-api来实现各种操作。
1.Key management
salt中, Wheel module是对key操作的一个封装, 通过调用wheel模块的api,实现key的accept,delete,reject,list等操作。
Wheel api参考: Wheel API
调用方式,这里用list key举例。
1 | curl -X POST -Ssk -i https://<master ip>:8000/login \ |
2.Run cmd
Execution module是远程执行一些function的模块,其中,cmd.run这个function就是执行minion的shell命令了。当然,其他function也可以执行,我的demo里只实现了cmd.run这个function。
Execution module参考: Execution module
cmd.run function参考: cmd.run funciton
调用方式举例:
1 | curl -X POST -Ssk -i https://<master ip>:8000/login \ |
UI
然后就是调用api来实现功能,展示页面了。
调api部分,我比较懒,直接用了我们项目的httpclient库了。
页面部分,我从bootstrap官网下载的页面来用。
Key Management UI
Cmd Run UI
demo配置
如果要运行demo,需要:
1.salt-api正确配置,参考: salt-api配置
2.salt user权限正确配置,可参考上一篇文章。
3.demo中,classpath下account.properties,需要配置ip_url,username和password。
代码地址: demo代码