- SaltStack 教程
- SaltStack - 首页
- SaltStack - 概述
- SaltStack - 架构
- SaltStack - 竞争对手
- SaltStack - 安装
- 创建简单的环境
- SaltStack - 访问控制系统
- SaltStack - 作业管理
- SaltStack - Salt 文件服务器
- SaltStack - Git 作为文件服务器
- 使用 MinionFS 作为文件服务器
- SaltStack - 使用 Cron 与 Salt
- SaltStack - 远程执行
- 配置管理
- SaltStack - 日志记录
- SaltStack - 通过 SSH 使用 Salt
- Salt 用于云基础设施
- SaltStack - Salt 代理 Minion
- SaltStack - 事件系统
- SaltStack - 编排
- SaltStack - Salt 软件包管理器
- SaltStack - Python API
- SaltStack - 工作示例
- SaltStack 有用资源
- SaltStack - 快速指南
- SaltStack - 有用资源
- SaltStack - 讨论
SaltStack - Salt 代理 Minion
有很多设备,如路由器、网络设备等,具有自定义操作系统、有限的内存和高度的安全考虑因素。在这些设备中,我们无法安装标准的salt-minion,因此无法管理这些系统。但是,Salt 提供了一种创新的技术来克服此限制。
Salt 有一个单独的模块,salt 代理 minion,它使用远程系统中运行的 REST 服务来控制远程系统。此 REST 服务是一个基于 HTTP 的 Web 服务,使用表述性状态转移 (REST) 概念编写,它们都易于实现且易于使用。
每个设备都将拥有自己的 SDK 和开发环境来编写复杂的应用程序。Salt 期望在设备中根据 Salt 接口规范开发 REST 服务。Salt 还提供了一个 python 模块来编写 REST Web 服务。如果设备支持 python,那么开发 REST Web 服务将很容易。
一旦 REST Web 服务在远程系统中开发和部署,Salt 就可以配置为使用 REST Web 服务而不是 salt minion 来控制远程设备。
工作示例
让我们使用一个实时工作环境来学习salt 代理 minion的概念。对于实时环境,我们为 master 和代理 minion 选择了 Linux 系统。我们将使用 REST Web 服务而不是 salt-minion 来控制系统。
安装和配置 REST Web 服务
Salt 提供了一个 REST Web 服务实现示例,在其 contrib 模块中命名为 proxyminion_rest_example。让我们安装示例 Web 服务。
使用 pip 安装“bottle”。bottle 命令是一个用于开发 Web 应用程序的 python Web 框架。
pip install bottle = 0.12.8
从 github 下载saltstack/salt-contrib 项目。或者,使用以下命令克隆项目。
git clone https://github.com/saltstack/salt-contrib
打开终端并转到salt-contrib 目录。
此 salt-contrib 目录将有一个文件夹proxyminion_rest_example。此文件夹包含 REST Web 服务的示例实现。转到 proxyminion_rest_example 文件夹。
运行以下命令启动 REST Web 服务。
python rest.py --address <your ip address> --port 8000
打开浏览器并加载 http://«您的 IP 地址»:8000。这将显示默认页面,其中包含服务和软件包,如下面的屏幕截图所示。
现在,我们已经配置了 REST Web 服务,它将检查如何配置 salt 代理以查询 REST Web 服务并控制系统。
配置 Salt-Proxy
要配置 Salt-Proxy,我们必须按照以下步骤操作。
我们必须为 salt-proxy 指定 master 节点。编辑代理配置文件位置,位于 /etc/salt/proxy 中,并输入以下代码。
master: <your ip address>
修改/创建基本 pillar 文件,位于/srv/pillar/top.sls 中,如下面的代码块所示。
base:
'p8000':
- p8000
添加一个新的 pillar 文件p8000.sls,位于/srv/pillar 中,如下面的代码块所示。
proxy: proxytype: rest_sample url: http://<your ip address>:8000
使用以下命令在调试模式下启动 salt-proxy。
salt-proxy --proxyid = p8000 -l debug
与 salt-minion 类似,接受salt-proxy 密钥,如下所示。
salt-key -y -a p8000 The following keys are going to be accepted: Unaccepted Keys: p8000 Key for minion p8000 accepted.
运行 Salt
现在,运行salt 命令并调用ping.test 函数,如下所示。
salt p8000 test.ping
我们可以通过使用salt 运行 REST Web 服务支持的任何函数,这与salt-minion 类似。
例如,可以使用以下命令获取 grain 信息。
salt p8000 grains.items