【问题标题】:SaltStack - using mine in pillar to dynamically build list of host names based on grain matchSaltStack - 在支柱中使用我的基于粒度匹配动态构建主机名列表
【发布时间】:2016-05-21 04:02:58
【问题描述】:

我在使用支柱中的盐矿来根据粒度值匹配动态创建主机列表时遇到问题。我没有收到任何错误,所有主机都没有输出。实际上,即使使用 salt 文档中的示例,我也无法从支柱中获得任何输出。我知道这不是我的顶级文件的问题,因为我可以访问所有其他支柱值。我的 test minion 的 mine.interval 设置为 5。我已经刷新了 Pillar 数据,并运行了 mine.update。

这是我的支柱的一个例子:

mine_functions:
  network.ip_addrs: []
  grains.item:
    - host
    - role

我的访问矿山功能的模板文件:

#I know this is writing the same list for each match, I'm just doing this for testing and I'll concat the results into a string when I know it works:
    {% for host in salt['mine.get']('roles:web', 'grains.items:host', expr_form='grain') | dictsort() %}
        serverList= {{ host }}
    {% endfor %}

CLI 的输出:

salt "server.domain.com" mine.get "*" "*"
server.domain.com:
    ----------

如何让它工作?我没有收到任何错误,没有输出,它运行平稳,但是文件中没有写入任何内容,并且我从命令行中什么也没有。我的目标是能够动态构建与特定粒度匹配的服务器列表,以在配置模板中设置配置值。我是不是走错路了,有没有更好的方法?

【问题讨论】:

  • 你跑salt \* saltutil.refresh_pillar了吗?
  • 是的 - salt "*" saltutil.refresh_pillar,但我也尝试了你的语法。相同的输出,没有任何内容被拾取。

标签: salt-stack


【解决方案1】:

我建议直接在您的 sls 文件中使用 mine.get 来获取该主机列表。我认为没有必要通过支柱数据传递它。

【讨论】:

  • 你的意思是直接在 minion(s) 上的 grains 文件中设置 mine_functions,而不是通过柱子?我希望使用柱子,所以我不必将它添加到单个谷物中,而是可以通过柱子/顶部文件匹配来应用。
  • 好的,我想我对你在这里想要做什么感到困惑。您能否更清楚地解释您想要的结果是什么?
  • 当然。我正在尝试在托管文件模板中动态填充主机名列表。在模板中,我希望能够找到与特定粒度值匹配的所有其他 Minion,并列出每个匹配 Minion 的主机粒度值。例如,我想找到与“role:serverX”的grain值匹配的所有minions,并从grain中为每个与“role:serverX”匹配的minion列出“host”值以动态填充配置文件中的属性,例如'serverX_hosts: host1|host2|host3|host4|host5'.
【解决方案2】:

@Utah_Dave,非常感谢这里和 IRC 的帮助。

将此作为答案发布,以便其他搜索此内容的人得到一个很好的例子......

支柱:

mine_functions:
  grains.items: []

模板文件:

  {% set ft_hosts = [] %}
  {% for grain_vals in salt['mine.get']('role:ps:ft:True', 'grains.items', expr_form='grain').items() %}
    {% do ft_hosts.append(grain_vals[1]['host']) %}
  {% endfor %}

  ft.ps.server.hosts={{ ft_hosts|join('|') }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多