目录
一、salt-ssh
salt-ssh用来在一些主机上无法实现minion的安装时,我们临时采用的一种替代方式。所以salt-ssh可以独立运行的,不需要minion端,交互时使用的是sshpass进行密码交互,以串行模式工作,故性能也有些许下降。
##安装salt-shh
[root@server1 salt]# yum install -y salt-ssh
##设置配置文件:/etc/salt/roster:
10 server2:
11 host: 192.168.1.12
12 user: root
13 passwd: 123456
##进行连接测试
[root@server1 salt]# salt-ssh '*' test.ping -i
[root@server1 salt]# salt-ssh '*' cmd.run hostname -i
二、salt-syndic
作用:syndic是salt中的一个代理服务器,用于隔离master与minion。主要用于集群部署。
特点:Syndic必须要运行在master上,再连接到另一个topmaster上。
过程:Topmaster 下发送状态通过syndic来传递给下级master,minion传递给master的数据同样由syndic传递给topmaster。topmaster并不知道有多少个minion。但要求:syndic与topmaster的file_roots和pillar_roots的目录要保持一致。
服务配置:
##master端
##安装salt-syndic
[root@server1 salt]# yum install -y salt-syndic
##配置主配置文件
[root@server1 salt]# vim /etc/salt/master
##文件内容:
syndic_master: 192.168.1.14 ##指定topmaster
##重启服务
[root@server1 salt]# systemctl restart salt-master.service
[root@server1 salt]# systemctl start salt-syndic.service
##topmsater端
##安装msater
[root@server4 salt]# yum insatall -y salt-master
##编辑配置文件:
[root@server4 salt]# vim /etc/salt/master
##配置文件内容:
order_masters: true ##开启topmaster服务
##重启master服务
[root@server4 salt]# systemctl restart salt-master.service
##内容检测
[root@server4 salt]# salt-key -L ##查看列表
[root@server4 salt]# salt-key -A ##设置权限
[root@server4 salt]# salt '*' test.ping ##测试
【说明】在上述结果中,我们可以看到,在server4(topmaster)中的列表只有li647,但是在进行信息测试时,得到的的反馈结果是server2 、server3的,该结果就证明lib64在这里类似于一个代理服务器proxy一样,最终的管依然是从topmaster发出的。
三、salt-api
为了实现程序开发以及第三方系统集成,SaltStack 官方提供了REST API格式的 salt-api 项目,使Salt与第三方系统集成变得简单。
利用api接口来实现SaltStack推送,管理集群是非常方便的手段。官方提供了三种api模块:
rest_cherrypy、rest_tornado、rest_wsgi。
官方文档:https://docs.saltstack.com/en/latest/ref/netapi/all/index.html#all- netapi-modules
##Salt-API配置:
##在master端安装salt-api服务模块:
[root@server1 ~]# yum install -y salt-api
##生成密钥文件(在传输过程中需要使用ssh认证登录):
[root@server1 ~]# cd /etc/pki/tls/private/
[root@server1 private]# openssl genrsa 2048 > locahost.key
##生成CA证书
[root@server1 ~]# cd /etc/pki/tls/certs/
[root@server1 certs]# make saltcert.crt
##证书配置
[root@server1 master.d]# cd /etc/salt/master.d/
[root@server1 master.d]# vim api.conf
##内容
rest_cherrypy:
host: 192.168.1.11
port: 8000
ssl_crt: /etc/pki/tls/certs/saltcert.crt
ssl_key: /etc/pki/tls/private/locahost.key
##添加认证文件:
[root@server1 master.d]# vim auto.conf
##文件内容:
1 external_auth:
2 pam:
3 saltapi:
4 - .*
5 - '@wheel'
6 - '@jobs'
##创建用户 ,指定密码
[root@server1 master.d]# useradd -s /sbin/nologin saltapi
[root@server1 master.d]# echo 123 | passwd --stdin saltapi
##重启服务,查看端口
[root@server1 master.d]# systemctl restart salt-master
[root@server1 master.d]# systemctl start salt-api
[root@server1 master.d]# netstat -anltupe | grep 8000
##登录查询:
##获取认证token:
[root@server1 master.d]# curl -sSk https://192.168.1.11:8000/login \
-H 'Accept: application/x-yaml' \
-d username=saltapi \
-d password=123\
-d eauth=pa
##任务推送:
[root@server1 master.d]# curl -sSk https://172.25.0.1:8000 \
-H 'Accept: application/x-yaml' \
-H 'X-Auth-Token: 77e2b1de04b0dbc0a4bf11900712b83e4fa2c241'\ ##• token值是上面命令获取的toekn值
-d client=local \
-d tgt='*' \
-d fun=test.ping
上述实验过程中,是三个单独的模块,小编在测试时,在同一主机上测试的,为了防止实验环境的干扰,读者在进行验证时,可以先恢复’实验环境,保证环境纯正,不干扰 下一个实验,如果出错时,我们也能很好的进行排错。