salt-ssh即经过ssh得方式进行管理,不须要安装salt-minion, salt-ssh 用的是sshpass进行密码交互的。python
被管理的机器须要支持远程链接,ssh有些功能不如minionshell
# yum install -y salt-ssh
# tail -6 /etc/salt/roster test1: #被管理的主机名 host: 172.18.X.X #被管理的主机IP user: test #被管理主机的ssh链接用户 passwd: passwd #被管理主机的ssh用户密码 port: 22 #被管理主机的ssh端口 sudo: True #是否容许sudo
第一次执行会有认证,加-i参数,之后就不用了数据库
# salt-ssh \* test.ping -i test1: True
方法一: # salt-ssh \* cmd.run "w" test1: 14:42:17 up 14 days, 4:39, 2 users, load average: 0.11, 0.09, 0.06 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT young pts/0 123.121.57.191 11:38 9.00s 0.84s 0.02s sshd: young [priv] young pts/1 123.121.57.191 14:30 11:37 0.04s 0.02s sshd: young [priv] 方法二: # salt-ssh \* -r "w" test1: ---------- retcode: 0 stderr: stdout: young@172.18.214.112's password: 14:42:24 up 14 days, 4:39, 2 users, load average: 0.09, 0.09, 0.06 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT young pts/0 123.121.57.191 11:38 8.00s 0.81s 0.02s sshd: young [priv] young pts/1 123.121.57.191 14:30 11:44 0.04s 0.02s sshd: young [priv]
# salt-ssh "*" state.sls install-tomcat
-r, –raw, –raw-shell # 直接使用shell命令后端
-priv #指定SSH私有密钥文件tomcat
-roster #定义使用哪一个roster系统,若是定义了一个后端数据库,扫描方式,或者用户自定义的的roster系统,默认的就是/etc/salt/roster文件服务器
-roster-file #指定roster文件ssh
-refresh, –refresh-cache #刷新cache,若是target的grains改变会自动刷新测试
-max-procs #指定进程数,默认为25spa
-i, –ignore-host-keys #当ssh链接时,忽略keyscode
-passwd #指定默认密码
-key-deploy #配置keys 设置这个参数对于全部minions用来部署ssh-key认证,这个参和–passwd结合起来使用会使初始化部署很快很方便。当调用master模块时,并加上参数 –key-deploy 便可在minions生成keys,下次开始就不使用密码
1.salt-ssh 是在salt基础上打了一个python包上传到客户端的默认tmp目录下,在客户端上面解压并执行返回结果,最后删除tmp上传的临时文件
2.salt-minion方法是salt-mater先执行语法验证,验证经过后发送到minion,minion收到Msater的状态文件默认保存在/var/cache/salt/minion
注意:也有时候salt-master语法验证经过,在minion上可能由于环境问题会执行失败
3.salt-ssh和salt-minion能够共存,salt-minion不依赖于ssh服务