自动化运维工具saltstack05 -- 之salt-ssh模式
salt-ssh模式
1、说明:
salt-ssh即通过ssh得方式进行管理,不需要安装salt-minion, salt-ssh 用的是sshpass进行密码交互的。
2、salt-ssh得局限性
被管理的机器需要支持远程连接,ssh有些功能不如minion
3、安装salt-ssh
# yum install -y salt-ssh
4、配置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
5、使用salt-ssh模式测试连接服务器
第一次执行会有认证,加-i参数,以后就不用了
# salt-ssh \* test.ping -i test1: True
6、使用salt-ssh模式执行shell命令
方法一: # 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]
7、使用salt-ssh执行salt状态
# salt-ssh "*" state.sls install-tomcat
总结:
1、salt-ssh命令用法
-r, –raw, –raw-shell # 直接使用shell命令
-priv #指定SSH私有密钥文件
-roster #定义使用哪个roster系统,如果定义了一个后端数据库,扫描方式,或者用户自定义的的roster系统,默认的就是/etc/salt/roster文件
-roster-file #指定roster文件
-refresh, –refresh-cache #刷新cache,如果target的grains改变会自动刷新
-max-procs #指定进程数,默认为25
-i, –ignore-host-keys #当ssh连接时,忽略keys
-passwd #指定默认密码
-key-deploy #配置keys 设置这个参数对于所有minions用来部署ssh-key认证,这个参和–passwd结合起来使用会使初始化部署很快很方便。当调用master模块时,并加上参数 –key-deploy 即可在minions生成keys,下次开始就不使用密码
2、salt-ssh于salt-minion总结:
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服务