共计 1830 个字符,预计需要花费 5 分钟才能阅读完成。
前言
对于手工业务曾经做的很焦躁了,还容易出错。钻研一下 salt-api 下发的形式,1 年前看过局部 salt python 客户端 api, 因为忙其余的业务,写了一部分没在写了, 当初抽空从新捡起来 (别家公司做的自动化,enmm, 真香。) 打算应用 rest api 的形式 进行平台对接应用。当初从 0 开始。努力做到不烂尾延。
装置 salt-api 环境 centos7
1、导入 repo key:
rpm --import https://repo.saltstack.com/yum/redhat/7/x86_64/latest/SALTSTACK-GPG-KEY.pub
2、/etc/yum.repos.d/saltstack.repo 增加如下内容:
[saltstack-repo]
name=SaltStack repo for RHEL/CentOS $releasever
baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
enabled=1
gpgcheck=1
gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK-GPG-KEY.pub
3、执行以下命令装置:
yum clean expire-cache
yum update
yum install salt-master
yum install salt-minion # master 端须要 salt-call 生成 salt-api 的 crt,key 就要装置。yum install salt-api
yum install gcc make python-devel libffi-devel -y
yum install pyOpenSSL
4、配置文件批改:
/etc/salt/master
interface: 192.168.90.135 # 填写本机对外服务 ip。
5、生成 key 和 crt:
salt-call --local tls.create_self_signed_cert
local:
Created Private Key: "/etc/pki/tls/certs/localhost.key." Created Certificate: "/etc/pki/tls/certs/localhost.crt."
6、/etc/salt/master.d/api.conf:
rest_cherrypy:
host: 192.168.90.135
port: 8000
ssl_crt: /etc/pki/tls/certs/localhost.crt # 刚生成的 crt 文件
ssl_key: /etc/pki/tls/certs/localhost.key # 生成的 key 文件
7、/etc/salt/master.d/auth.conf:
external_auth:
pam: # 应用用 Linux 零碎用户进行验证
saltapi:
- .* # 设置用户的权限,容许该用户操作哪些主机,* 代表全副
- '@wheel' # 容许拜访所有的 wheel 模块
- '@runner' # 容许拜访所有的 runner 模块
- '@jobs' # 容许拜访所有的 job runner 或 wheel 模块
8、增加认证的用户 -nologin
useradd -M -s /sbin/nologin saltapi
echo "saltapi" | passwd saltapi --stdin #设置用户名和明码都是:saltapi, 等会获取 token 用的到。
9、启动服务并测试 api:
systemctl start salt-api
systemctl start salt-master
curl -k https://192.168.90.135:8000/login -H 'Accept: application/x-yaml' -d username='saltapi' -d password='saltapi' -d eauth='pam' #执行命令
# ---->
return:
- eauth: pam
expire: 1617078491.248806
perms:
- .*
- '@wheel'
- '@runner'
- '@jobs'
start: 1617035291.248805
token: ee729ada7f08181a89d22b13b4f9f4d8555b5041
user: saltapi
获取到 token 阐明 api 曾经 OK 了。
正文完