Saltstack教程

SaltStack Salt Proxy

有很多设备,如路由器、网络设备等,具有自定义操作系统、有限的内存和高安全性考虑。在这些设备中,我们无法安装标准的 salt-minion,因此无法管理这些系统。然而,Salt 提供了一种创新技术来克服这种限制。
Salt 有一个单独的模块,即 salt proxy minion,它使用在远程系统中运行的 REST 服务来控制远程系统。此 REST 服务是使用 具象状态传输 (REST) 概念编写的基于 HTTP 的 Web 服务,它们既易于实现又易于使用。
每个设备都有自己的 SDK 和开发环境来编写复杂的应用程序。 Salt 期望根据 Salt 接口规范在设备中开发 REST 服务。 Salt 还提供了一个 python 模块来编写 REST web 服务。如果设备支持python,那么开发起来会很容易REST 网络服务。
在远程系统中开发并部署 REST Web 服务后,可以配置 Salt 以使用 REST Web 服务而不是 salt minion 来控制远程设备。

工作示例

让我们在现场工作环境中学习 salt proxy minion 的概念。对于 live 环境,我们为 master 和 proxy minion 选择了一个 Linux 系统。我们将使用 REST 网络服务而不是 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 服务
现在,我们已经配置了 REST web 服务,它将检查如何配置 salt 代理来查询 REST web 服务并控制系统。

配置Salt代理

要配置 Salt-Proxy,我们必须按照以下步骤操作。
我们必须为 salt-proxy 指定主节点。编辑/etc/salt/proxy 中的代理配置文件位置,然后输入以下代码。
master: <your ip address>
/srv/pillar/top.sls中修改/创建基础支柱文件,如下面的代码块所示。
base:
  'p8000':
     -p8000
/srv/pillar中添加一个新的支柱文件p8000.sls,如下面的代码块所示。
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 网络服务支持的任何函数,它类似于 salt-minion
例如,可以通过以下命令获取谷物信息。
salt p8000 grains.items
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4