【问题标题】:Update the config file of minion with the IP Address of one minion用一个 minion 的 IP 地址更新 minion 的配置文件
【发布时间】:2021-11-12 04:44:53
【问题描述】:
首先我对盐很陌生,如果这是一个微不足道的问题,请原谅我。
我的 setup 中有一个 salt-master 和 3 个 salt-minions(1 个 license-minion,2 个 app-minion)。
要求是使用 license-minion 的 IP 地址更新 2 个 app-minions 中的配置文件。
我知道:
sudo salt 'license-minion' network.ip_addrs
将返回 IP 地址,但如何将其应用到 app-minions。
任何帮助将不胜感激。
【问题讨论】:
标签:
salt-stack
salt
configurationmanager
【解决方案1】:
我想你正在寻找Salt Mine。 Salt master 可以使用mine_functions 从 minions 中检索所需的信息。然后其他的奴才可以查询这个“我的”数据。 mine_functions可以添加到minion的配置文件或者(minion的)pillar中。
示例 minion 支柱文件license-minion.sls:
mine_functions:
network.ip_addrs:
- interface: ens192
柱子刷新,查看新添加的mine_functions是否出现:
salt '*' saltutil.refresh_pillar
salt '*' pillar.items
现在我们可以通过在mine module 中运行mine.get 函数来获取app-minion 中license-minion 的IP 地址。
salt 'app-minion1' mine.get license-minion network.ip_addrs
给予
app-minion1:
----------
license-minion:
- 1.2.3.4
可以从模板文件调用相同的函数:
{% set lm_data = salt['mine.get']('license-minion', 'network.ip_addrs') | dictsort() %}
文档中有一些关于如何在模板中使用此信息的示例。