📅  最后修改于: 2020-10-31 14:27:37             🧑  作者: Mango
有许多设备,如路由器,网络设备等,具有自定义操作系统,有限的内存和高度的安全性考虑。在这些设备中,我们无法安装标准的Salt-minion ,因此无法管理这些系统。但是,Salt提供了一种创新技术来克服这种限制。
Salt有一个单独的模块,即Salt proxy minion,它使用在远程系统中运行的REST服务来控制远程系统。该REST服务是使用代表性状态传输(REST)概念编写的基于HTTP的Web服务,它们既易于实现又易于使用。
每个设备将具有自己的SDK和开发环境来编写复杂的应用程序。 Salt希望根据Salt接口规范在设备中开发REST服务。 Salt还提供了一个Python模块来编写REST Web服务。如果设备支持Python,那么将很容易开发REST Web服务。
一旦开发了REST Web服务并将其部署在远程系统中,即可将Salt配置为使用REST Web服务而不是Salt Minion来控制远程设备。
让我们使用实时工作环境来学习盐代理小兵的概念。对于实时环境,我们为主服务器和代理服务器选择了Linux系统。我们将使用REST Web服务而不是salt-minion来控制系统。
Salt提供了REST Web服务实现的示例,在其contrib模块中将其命名为proxyminion_rest_example。让我们安装示例Web服务。
使用pip安装“瓶” 。 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 --port 8000
打开浏览器并加载http://«您的IP地址»:8000。这将显示带有服务和软件包的默认页面,如下面的屏幕快照所示。
现在,我们已经配置了REST Web服务,它将检查如何配置Salt代理来查询REST Web服务并控制系统。
要配置Salt-Proxy,我们必须遵循以下步骤。
我们必须为盐代理指定主节点。编辑位于/ etc / salt / proxy中的代理配置文件位置,然后输入以下代码。
master:
修改/在/srv/pillar/top.sls中创建基本支柱文件,如以下代码块所示。
base:
'p8000':
- p8000
在/ srv / pillar中添加一个新的支柱文件p8000.sls ,如下面的代码块所示。
proxy:
proxytype: rest_sample
url: http://:8000
使用以下命令在调试模式下启动salt-proxy。
salt-proxy --proxyid = p8000 -l debug
与盐小仆类似,接受盐代理密钥,如下所示。
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