salt-api
salt-api是我们通过restful-api调用salt-master的接口,且调用的时候必须通过认证才能调用,认证的用户为系统用户,下面就说说如何配置salt-api。
安装Salt-API服务
一般情况下,salt-api会使用HTTPS,首次配置成功后,使用用户名和密码登陆,获得Token,Token创建后,默认有效期是12小时,在有效期之内,使用该Token可以代替使用用户名和密码来访问API(该有效时间可在salt-master配置文件中修改)
yum install -y salt-spi pip install CherryPy==3.8.2
不带SSL认证
1.创建用户
useradd -M -s /sbin/nologin sa echo "sapassword" | passwd sa --stdin
2.修改salt-master配置文件
default_include: master.d/*.conf
3.创建目录与配置文件:
cd /etc/salt/ mkdir master.d/ cd master.d/ #2个配置文件如下 [root@anhuitest master.d]# cat eauth.conf
external_auth:
pam: #认证模式,pam指的是用Linux本身的用户认证模式
sa: #Linux系统中真实存在的用户名
- .* #设置用户的权限,允许该用户操作哪些主机,*代表全部
- '@wheel' #模块
- '@runner' #模块
[root@anhuitest master.d]# cat api.conf rest_cherrypy: host: 0.0.0.0 port: 8000 debug: true disable_ssl: true
4.启动slat-api和salt-master
service salt-master restart
service salt-api restart
5.验证操作:
curl -k http://127.0.0.1:8000/login -H "Accept: application/x-yaml" -d username='sa' -d password='sapassword' -d eauth='pam' return: - eauth: pam expire: 1545147728.214426 perms: - .* start: 1545104528.214425 token: d583026550f9841163006d2f92f9c26ba71af0d3 user: sa
6.通过获取的 token 执行命令看看
curl -k http://127.0.0.1:8000/ -H "Accept: application/x-yaml" -H "X-Auth-Token: d583026550f9841163006d2f92f9c26ba71af0d3" -d client="local" -d tgt='*' -d fun='test.ping' return:
- anhui00: true anhui01: true anhui02: true anhuitest: true
具体代码: https://github.com/zhaocong222/flask-salt-api
参考:https://www.cnblogs.com/liaojiafa/p/6511190.html
https://www.jianshu.com/p/5c57b483dccc