云计算自动化运维——Saltstack使用salt-ssh模块

一、salt-ssh引入

我们在安装部署 SaltStack 的时候,需要安装 salt 客户端,还要与 salt 服务端进行认证才能互相通信。

如果我们使用 salt-ssh 的方式就不需要安装 salt 客户端,也不需要做认证,是 master 基于 ssh 去连接 minion 的。

二、Roster使用

salt-ssh需要一个名单系统来确定哪些执行目标,Salt的0.17.0版本中salt-ssh引入roster系统。

roster系统编译成了一个数据结构,包含了targets,这些targets是一个目标系统主机列表和连接到这些targets方法路径。

# target的信息
    host:        # 远端主机的ip地址或者dns域名
    user:        # 登录的用户
    passwd:      # 用户密码,如果不使用此选项,则默认使用秘钥方式
# 可选的部分
    port:        #ssh端口
    sudo:        #可以通过sudo
    tty:         # 如果设置了sudo,设置这个参数为true
    priv:        # ssh秘钥的文件路径
    timeout:     # 当建立链接时等待响应时间的秒数
    minion_opts: # minion的位置路径
    thin_dir:    # target系统的存储目录,默认是/tmp/salt-<hash>
    cmd_umask:   # 使用salt-call命令的umask值

三、实验

实验环境:

主机名 ip 服务
server1 172.25.1.1 salt-master、salt-ssh
server4 172.25.1.4 客户端

此实验在salt-master端进行
【1】

1、关闭客户端salt-minion,查看salt-master端未连接salt-minion

salt-key -L

在这里插入图片描述
2、在网上下载好salt-ssh安装包并安装

 yum install salt-ssh -y

在这里插入图片描述
3、修改roster文件,配置要管理的机器

vim  /etc/salt/roster 
server4:
  host: 172.25.1.4
  user: root
  passwd: westos

在这里插入图片描述
4、测试

salt-ssh '*' test.ping -i

在这里插入图片描述
【2】
1、开启客户端salt-minion,服务端认证连接
在这里插入图片描述
2、测试

salt-ssh '*' test.ping -i

在这里插入图片描述

四、总结

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服务

发布了170 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/CapejasmineY/article/details/103601918