有许多设备,如路由器,网络设备等,具有自定义操作系统,有限的内存和高安全性考虑因素.在这些设备中,我们无法安装标准 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服务,它将检查如何配置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 p8000The following keys are going to be accepted:Unaccepted Keys:p8000Key for minion p8000 accepted.
运行盐
现在,运行 salt 命令并调用 ping.test 功能如下所示.
salt p8000 test.ping
我们可以使用 salt 运行REST Web服务支持的任何功能,类似于 salt-minion .
例如,可以使用以下命令获得谷物信息.
salt p8000 grains.items