📜  SaltStack-盐代理小兵

📅  最后修改于: 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来控制系统。

安装和配置REST Web服务

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服务

现在,我们已经配置了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