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

posted on 2018-12-18 11:41  睡着的糖葫芦  阅读(1022)  评论(0编辑  收藏  举报