自动化运维工具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服务

 

posted @ 2018-10-11 14:51  欧-阳  阅读(816)  评论(1编辑  收藏  举报