- SaltStack 教程
- SaltStack - 主页
- SaltStack - 概述
- SaltStack - 架构
- SaltStack - 竞争对手
- SaltStack - 安装
- 创建一个简单的环境
- SaltStack - 访问控制系统
- SaltStack - 作业管理
- SaltStack - Salt 文件服务器
- SaltStack - Git 作为文件服务器
- 使用MinionFS作为文件服务器
- SaltStack - 将 Cron 与 Salt 结合使用
- SaltStack - 远程执行
- 配置管理
- SaltStack - 日志记录
- SaltStack - 通过 SSH 进行加盐
- 云基础设施的盐
- SaltStack - Salt 代理 Minion
- SaltStack - 事件系统
- SaltStack - 编排
- SaltStack - Salt 包管理器
- SaltStack - Python API
- SaltStack - 工作示例
- SaltStack 有用资源
- SaltStack - 快速指南
- SaltStack - 有用的资源
- SaltStack - 讨论
SaltStack - 通过 SSH 进行加盐
Salt 使用salt-minion在远程系统中执行命令。这是正常Behave。在某些场景下,只能通过SSH协议访问远程系统。对于这些场景,Salt 提供了仅使用 SSH 协议连接远程系统并通过 SSH 层执行命令的选项。
Salt SSH非常容易配置。唯一需要的配置是在名为Roster 文件的特殊文件中指定远程系统详细信息。该名册文件通常位于/etc/salt/roster中。名册文件将包含有关远程系统以及我们如何连接到它的所有信息。配置名册文件后,所有 Salt 命令都使用salt-ssh而不是 salt 命令执行。
名册文件
Roster System 是专为 Salt SSH 设计的。这是一个可插拔系统。名册系统的唯一目的是收集有关远程系统的信息。名册文件是基于 YAML 的配置文件,其中包含远程系统信息作为目标。这些目标是具有一组预定义属性的特殊数据结构。名册文件包含一个或多个目标,每个目标都由Salt ID标识。
名册文件的基本结构如下 -
<Salt ID>: host: <host name> user: <user name> passwd: <password of the user>
名册文件支持的所有其他属性都是可选的。它们如下 -
端口- SSH 端口号。
sudo - 是否通过 sudo 运行命令。
sudo_user - sudo 用户名。
tty - 如果启用了 sudo,则为 true。
priv - 私钥。
timeout - SSH 连接超时。
minion_opts - minion opts 字典。
Thin_dir - 目标系统的 salt 组件的存储目录。
cmd_umask - 强制执行 salt-call 命令的 umask。
样本名册文件如下 -
web: host: 192.168.2.1 user: webuser passwd: secret sudo: True db: host: 192.168.2.2
部署 SSH 密钥
Salt SSH 将为 SSH 登录生成默认的公钥/私钥对。默认路径为 /etc/salt/pki/master/ssh/salt-ssh.rsa。可以使用ssh-copy-id命令将该密钥部署到远程系统,如下所示。
ssh-copy-id -i /etc/salt/pki/master/ssh/salt-ssh.rsa.pub user@web.company.com
执行命令
执行 salt 命令就像将salt cli命令更改为salt-ssh一样简单,如下所示。
salt-ssh '*' test.ping
原始外壳命令
Salt SSH 提供了一个选项 (-r),可以绕过 salt 模块和函数在远程系统中执行原始命令。
salt-ssh '*' -r 'ls'
使用 Salt SSH 定位
在 Salt SSH 中以远程系统为目标仅支持 glob 和 regex 目标。由于 Salt SSH 是一个单独的模块,因此它目前仅提供有限的选项,并将在不久的将来提供更多功能。