学习指南: https://docs.saltstack.com/en/latest/topics/ssh/index.html
基本介绍
- salt-ssh 是saltstack 0.17.0 新引入的一个功能,不需要minion对客户端进行管理,也不需要master。如果有安装minion也可以调用minion模块。salt-ssh 支持salt大部分的功能:如 grains、modules、state 等
- salt-ssh是通过ssh协议执行命令进行管理服务器,salt-ssh 没有使用ZeroMQ的通信架构,执行是串行模式;完全是基于ssh协议的,所以在进行远程行,ssh的执行效率要远远低于ZeroMQ。salt-ssh有点类似ansible无客户端基与ssh协议进行管理服务器
原理及应用
- 通过roser(/etc/salt/roser)配置文件。创建roster系统是因为salt-ssh需要依赖这个名单来确定哪些系统如何连接并且执行。
- 因为这个roster系统属于“热插拔”类型,它可以增强附着在任何现有的系统中来收集关于哪些服务器目前可用以及可以使用salt-ssh来连接的信息
- salt-ssh主要作用是不需要安装minion,只要ssh协议开放,即可远程执行命令,可用作拿到一批新机器,批量配置时使用,也可以直接通过salt-ssh不安装minion进行管理。
具体实现
在minion端(server2、server3):
由于先前实验存在master,minion所以这里先关闭salt-minion端便于观察salt-ssh效果
[root@server2 ~]# systemctl stop salt-minion
[root@server3 ~]# systemctl stop salt-minion
在master端(server1):
(1)下载salt-ssh
[root@server1 ~]# yum install -y salt-ssh
(2)配置roster配置文件
[root@server1 ~]# vim /etc/salt/roster[root@server1 ~]# vim /etc/salt/roster
9 server2:
10 host: 172.25.3.2
11 user: root
12 passwd: redhat
13 server3:
14 host: 172.25.3.3
15 user: root
16 passwd: redhat
测试:
- 在master端ping测试 返回结果为True
[root@server1 ~]# salt-ssh '*' test.ping
- 利用salt-ssh执行操作查看df挂载情况,结果全部返回到roster所在端
[root@server1 ~]# salt-ssh '*' cmd.run df
- 利用salt-ssh查看主机名
[root@server1 ~]# salt-ssh '*' -r 'hostname'