20. Salt SSH
在版本0.17.0当中,引入了新的传输系统,它支持通过SSH通道来实现Salt的通信。通过这种方式,我们可以将Salt routines直接通过SSH通道在远程主机上执行,而不需要在远程主机上运行Salt Minion,同样的道理,Salt Master也就不需要运行了。这样,也就实现了免客户端的方式的部署和实施。
注解:
Salt SSH 并不能完全取代标准的Salt通信方式,它只是简单的提供了一个基于SSH通道的可选方式,这种方式不需要ZeroMQ和远程Agent的支持。但必须意 识到的是,通过Salt SSH的执行速度会大幅度的低于有ZeroMQ支持的标准的Salt通信方式。
Salt SSH 使用起来非常简单,只需要创建一个基本的“roster”文件用于连接远程主机,然后通过“salt-ssh”命令来执行,具体的命令格式与标准的“salt”命令基本一致。
注解:
Salt SSH最终应该像标准 salt 一样支持同样的命令和功能。
目前文件服务操作必须包装成相关文件传递给 salt-ssh 命令。state模块是一个例外,它将在master上编译为state运行,并在这过程中发现所有 salt:// 路径的引用,然后当state运行时拷贝那些文件到同样的tar包。但是,所需的文件服务包装器仍然在开发中。
20.1 Salt SSH POSTER
Salt中的roster系统将使指定远程的minions操作变得简单.
简单的创建下roster文件,默认的本地路径是/etc/salt/roster:
web1: 192.168.42.1
这是一个非常基本的roster文件,指定了Salt ID及IP地址. 更为复杂的roster如下:
web1: host: 192.168.42.1 # The IP addr or DNS hostname user: fred # Remote executions will be executed as user fred passwd: foobarbaz # The password to use for login, if omitted, keys are used sudo: True # Whether to sudo to root, not enabled by defaultweb2: host: 192.168.42.2
20.2 调用Salt SSH
The salt-ssh command can be easily executed in the same way as a salt command:
salt-ssh ‘*‘ test.ping
salt-ssh 命令的语法和 salt 命令类似.
Salt标准函数可以直接执行! 其输出也和 salt 命令一样,也有一些参数可以指定,可以访问 http://docs.saltstack.com/ref/cli/salt-ssh.html 获取这些参数选项.
20.3 通过salt SSH进行状态管理
salt-ssh 也可以直接使用Salt状态管理系统. 状态管理系统在 salt-ssh 中抽象为和 salt 同样的接口,这样就保证了通过 salt-ssh 及vice-versa可以直接使用标准的 salt Formulase而无需做修改.
Salt状态管理演练可以直接将 salt 命令直接替换为 salt-ssh 即可使用.
20.4. Salt SSH Target
由于salt-ssh中的target与salt几乎不一致,当前只支持glob及正则target, 其他的target系统也会不断的加入进来.
20.5. 配置Salt SSH
Salt SSH从master配置文件提取自己的配置。通常情况下,配置文件位于 /etc/salt/master。如果想使用一个自定义的配置文件,传递 -c 选项给Salt SSH指定一个查找目录,包含文件名 master。
20.6. 用非root用户运行Salt SSH
默认情况下,salt从/etc/salt/读取所有配置。如果你使用普通用户运行Salt SSH,必须修改一些路径,否则你会收到"Permission denied"信息。你必须修改两个参数: pki_dir 和 cachedir。应该指向一个对于用户可写的绝对路径。
不建议直接修改 /etc/salt。为用户创建一份/etc/salt的私有拷贝并且运行命令行加上``-c /new/config/path``。
20.7. 利用Saltfile定义CLI选项
如果您通常通过CLI中的选项"salt-ssh" ,你可以创建一个"Saltfile" 自动使用这些选项。如果你在同一台服务器上管理多个不同的salt项目,这是常见的。
因此,如果您使用一个Saltfile"cd"进一个目录,内容如下:
salt-ssh: config_dir: path/to/config/dir max_prox: 30
而不是调用"salt-ssh --config-dir=path/to/config/dir --max-procs=30 * test.ping" 你可以调用"salt-ssh * test.ping"
本文出自 “Linux革命” 博客,请务必保留此出处http://kaibinyuan.blog.51cto.com/7304008/1628135
原文地址:http://kaibinyuan.blog.51cto.com/7304008/1628135