【问题标题】: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。

任何帮助将不胜感激。

【问题讨论】:

  • 这取决于哪种配置文件。一般来说,您可以使用状态模块file.managed 来满足您的要求。看看salt formulas。也许您要配置的服务已经存在。

标签: 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() %}

文档中有一些关于如何在模板中使用此信息的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-26
    • 2023-03-30
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    相关资源
    最近更新 更多