速云科技

SaltStack之Salt SSH

Salt在版本0.17.0当中,引入了新的传输系统,它支持通过SSH通道来实现Salt的通信。通过这种方式,我们可以直接通过SSH通道在远程主机上执行,而不需要在远程主机上运行Salt Minion,同样的道理,Salt Master也就不需要运行了。这样,也就实现了免客户端的方式的部署和实施。

Salt SSH 并不能完全取代标准的Salt通信方式,它只是简单的提供了一个基于SSH通道的可选方式,这种方式不需要ZeroMQ和远程Agent的支持。但必须意识到的是,通过Salt SSH的执行速度会大幅度的低于有ZeroMQ支持的标准的Salt通信方式。

安装Salt-SSH

[root@ops-node1 ~]# yum install salt-ssh –y

设置Salt Rosters

在传统的Master和Minion的架构中minion会主动连接master,所以master不需要知道目标系统的信息。但是使用Salt SSH,就需要这些。在SaltStack中我们使用Rosters来提供这些数据。

Salt Rosters

Salt rosters在0.17.0版本中被加入,用来方便 salt-ssh 的使用。roster被创建是因为 salt-ssh 需要一种方法来针对特定的目标系统执行命令。

roster系统为可插拔设计, 可以非常方便的加入到已有的系统中,用于“salt-ssh“ 获取需要连接的服务器信息. 默认情况下roster文件本地路径为 /etc/salt/roster。

roster系统编译了一个内部数据结构称为`targets`。`targets`是一个目标系统和关于如何连接到系统的属性的列表。对于一个在Salt中的roster模块来说,唯一要求是返回`targets`数据结构。

<Salt ID>:   # 目标ID

host:     # 远程主机的IP地址或者主机名

user:     # 可以登录的用户

passwd:   # 可以登录用户的密码

# 可选参数

port:     # SSH端口

sudo:     #是否运行sudo,设置True或者False

priv:     # SSH私钥的路径, 默认是salt-ssh.rsa

timeout: # 连接SSH时的超时时间

thin_dir: # 目标系统Salt的存储路径,默认是/tmp/salt-<hash>

执行Salt-SSH

[root@ops-node1 ~]# salt-ssh ‘*’ test.ping

欢迎留言