【发布时间】: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