SaltStack - Salt Proxy Minions

有许多设备,如路由器,网络设备等,具有自定义操作系统,有限的内存和高安全性考虑因素.在这些设备中,我们无法安装标准 salt-minion ,因此无法管理这些系统.但是,Salt提供了一种创新技术来克服这种限制.

Salt有一个单独的模块,salt proxy minion,它使用远程系统中运行的REST服务来控制远程系统.此REST服务是使用 Representational State Transfer(REST)概念编写的基于HTTP的Web服务,它们易于实现且易于使用.

Every设备将拥有自己的SDK和开发环境来编写复杂的应用程序. Salt希望根据Salt接口规范在设备中开发REST服务. Salt还提供了一个python模块来编写REST Web服务.如果设备支持python,那么很容易开发REST Web服务.

在远程系统中开发和部署REST Web服务后,可以配置Salt来控制远程设备使用REST Web服务而不是盐奴才.

工作示例

让我们学习 salt proxy minion

安装和配置REST Web服务

Salt提供了一个示例REST Web服务实现,在其contrib模块中命名为proxyminion_rest_example.让我们安装示例Web服务.

  • 使用pip安装'bottle'. bottle 命令是用于开发Web应用程序的python Web框架.

 
 pip install bottle = 0.12.8

  • 下载 saltstack/来自github的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服务并控制系统./p>

配置Salt-Proxy

要配置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 key ,如下所示.

salt-key -y -a p8000

The following keys are going to be accepted:
Unaccepted Keys:
p8000
Key for minion p8000 accepted.

运行盐

现在,运行 salt 命令并调用 ping.test 功能如下所示.

 
 salt p8000 test.ping

我们可以使用 salt 运行REST Web服务支持的任何功能,类似于 salt-minion .

例如,可以使用以下命令获得谷物信息.

 
 salt p8000 grains.items