salt-api在使用时,有些坑欲哭无泪,一路趟雷事后,总结了一趟salt-pai使用填坑指南,保君一路畅通。python
#本文的安装版本 2018.3.2-1.el6 yum install salt-api.noarch
centos 6json
checkconfig salt-api on service salt-api start
centos 7centos
systemctl enable salt-api.service systemctl start salt-api
cd /etc/salt/master.d/ vi api.conf
内网不安全,须要使用秘钥加密,请问度娘api
rest_tornado: port: 8888 #ssl_crt: /etc/pki/tls/certs/localhost.crt #ssl_key: /etc/pki/tls/private/localhost_nopass.key debug: True disable_ssl: True rest_cherrypy: port: 8889 #ssl_crt: /etc/pki/tls/certs/localhost.crt #ssl_key: /etc/pki/tls/private/localhost_nopass.key debug: True disable_ssl: True
vi eauth.conf
external_auth: pam: saltapi: - .* - '@runner' - '@wheel'
pam 表示salt-api的验证采用Linux系统自带的pam验证,就是基于Linux用户的验证方式安全
saltapi 这个是Linux用户,因此salt-api就能够基于Linux用户密码进行验证app
useradd saltapi passwd saltapi
注意暂时不要设置saltapi用户为nologin,否则你会后悔的
saltapi用户密码用 saltapipw 指代less
service salt-api restart
curl -si http://salt-api-ip:8888/login \ -H "Accept: application/json" \ -d username='saltapi' \ -d password='saltapipw' \ -d eauth='pam'
返回 json 包含 tonken 则正常python2.7
首先su验证下用户输入密码是否正确curl
#su - saltapi Account locked due to 66 failed logins # less /var/log/secure python2.7: pam_tally2(login:auth): user saltapi (7006) tally 62, deny 5
发现用户居然被锁ide
#查看用户登陆状态 #pam_tally2 --user=saltapi Login Failures Latest failure From saltapi 66 09/30/18 11:02:01 pts/1
重置帐户登陆失败计数
#pam_tally2 --user=saltapi --reset #pam_tally2 --user=saltapi Login Failures Latest failure From saltapi 0
从新请求salt-api正常,可是几回后仍是被锁
临时解决方法,取消pam_tally2验证
vi /etc/pam.d/system-auth #注释 auth required pam_tally2.so onerr=fail deny=5 unlock_time=1800
#能够在root用户下执行 salt -T -a pam 'minion_id' test.ping #注意,若是验证经过,就会生成~/salt_token 文件,里面记录验证用户的tonken,若是过时或者从新验证,须要删除这个文件