configuration-management - 如何获取模板中所有 salt 的列表?

标签 configuration-management salt-stack

基本上,我正在创建一个描述 Munin 服务器配置的 Salt 状态,我需要获取主节点已知的所有随从的列表,如下所示:

{% for host in pillar['munin_clients'] %}
[{{ host.fqdn }}]
    address {{ host.ip }}
    use_node_name yes
{% endfor %}

唯一的区别是我不想为此使用 pillar,我需要动态填充此列表。 ret.get_minions似乎是相关的,但由于某种原因我无法让它工作。我有哪些选择?

最佳答案

我设法使用 Salt Mine 系统实现了这一点(感谢 Salt-users Google 组的成员):

{% for host, hostinfo in salt['mine.get']('*', 'network.interfaces').items() %}
[{{ host }}]
    address {{ hostinfo['eth0']['inet'][0]['address'] if hostinfo['eth0'].has_key('inet') else hostinfo['br0']['inet'][0]['address'] }}
    use_node_name yes
{% endfor %}

我不得不添加
mine_functions:
  network.interfaces: []

到最后/etc/salt/minion在每个节点上启用盐矿。

关于configuration-management - 如何获取模板中所有 salt 的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17158665/

相关文章:

salt-stack - SaltStack : Cereal vs支柱

python - Saltstack master 找不到执行模块,说不可用

salt-stack - salt : install package and run service (name different than package)

yaml - 改进的 SaltStack 缩放方式

git - 使用 Subversion 的类似 "Git"的工作流?

.net - 如何使用配置在私有(private)文件夹中操作多个程序集版本?

configuration - 在 VS 2010 中管理项目配置

python - 如何从同样动态创建 salt 状态的循环中要求动态创建的 salt 状态?

salt-stack - 如何比较 salt sls 文件中的版本字符串