SaltStack安装配置以及salt-api使用
1、主节点控制端和子节点被控制端
salt–master 和 salt-minion
通过 salt-api 访问 salt-master 来控制salt-minion 执行 命令 返回结果
2、linux服务器安装过程
Master端操作步骤:
下载master节点依赖包:
yum install salt-master -y
yum install salt-api pyOpenSSL -y
在master节点执行以下命令:
cd /etc/pki/tls/certs/
make testcert(证书名称)
cd …/private/
openssl rsa -in localhost.key -out localhost_nopass.key
chmod 755 /etc/pki/tls/certs/localhost.crt
chmod 755 /etc/pki/tls/private/localhost.key
chmod 755 /etc/pki/tls/private/localhost_nopass.key
添加用户:
useradd -M -s /sbin/nologin saltapi
设置用户密码:
echo ‘saltapi’ | passwd --stdin saltapi
修改master节点配置文件:
cd /etc/salt/master
取消以下两行注释:
default_include: ./master.d/*.conf
auto_accept: True
创建配置文件目录:
mkdir /etc/salt/master.d
vim api.conf :
rest_cherrypy:
host: ***** # master主节点ip
port: 8989 # master主节点api端口,自己定义
ssl_crt: /etc/pki/tls/certs/localhost.crt # 证书
ssl_key: /etc/pki/tls/private/localhost_nopass.key # 密钥
vim eauth.conf :
external_auth:
pam:
: # 用户
- . # 该配置文件给予saltapi用户所有模块使用权限,出于安全考虑一般只给予特定模块使用权限
Minion被控端操作步骤:
下载minion节点依赖包:
yum install salt-minion -y
vim /etc/salt/minion
添加以下内容:
master: 主ip, #ip地址,写入 salt-master 的地址
id:自己的id_name #自己定义,建议host_name
3、master和minion启动和停止服务
启动服务:
master节点操作:
启动master节点:
systemctl restart salt-master
启动接口api进程:
systemctl start salt-api
检查进程:
检查端口监听状态(此处端口为 /etc/salt/master.d/api.conf中port)
master节点检查结果如上图所示即为启动成功。
minion节点操作:
systemctl start salt-minion
检查进程:
停止服务
master节点操作:
停止master节点:
systemctl stop salt-master
停止接口api进程:
systemctl stop salt-api
minion节点操作:
systemctl stop salt-minion
4、master授权验证:
salt-key -L 查看所有的key信息,Accepted Keys:下显示有minion的key值表示已添加权限认证。
添加子节点权限:
salt-key -a minion定义id
salt-key 相关参数介绍–>
-L 列出所有
-a 允许一台minion(id)
-A 允许所有
-r 拒绝一台
-R 拒绝所有
-d 删除指定mini
-D 删除所有
连通性测试:
salt ‘*’ test.ping
salt ‘*’ cmd.run ‘ls /’
salt-api测试:
1、获取登录token值:
curl -sSk https://ip:port/login -H ‘Accept: application/x-yaml’ -d username=‘ljk’ -d password=‘ljk’ -d eauth=‘pam’
2、测试test.ping
curl -sSk https://ip:port-H ‘Accept: application/json’ -H ‘X-Auth-Token: a4067ba496bb0d7f98f3eb32f00e5dc2f1f882ff’ -d client=local -d tgt=’*’ -d fun=‘cmd.run’ -d arg=‘ls /root’