有人可以给我一个白痴解释以下是如何工作的:
{% for server, addrs in salt['mine.get']('roles:web', 'network.ip_addrs', expr_form='grain') | dictsort() %}
server {{ server }} {{ addrs[0] }}:80 check
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
支柱文件如下所示:
mine_functions:
network.ip_addrs: [eth0]
Run Code Online (Sandbox Code Playgroud)
盐分配给前两个值是什么,server以及addrs?你会如何在上面使用多个地雷选项?即,如果您的 pillar 文件有一个额外的 mine 功能,如下所示:
mine_functions:
network.ip_addrs: [eth0]
role:
- mine_function: grains.get
- role
Run Code Online (Sandbox Code Playgroud)
那么如何访问第一个代码片段中的角色函数?
希望这是有道理的
在您的支柱中定义的 mine 函数告诉 Minion 将有关它们的一些信息推送给 salt master。然后你可以从任何仆从访问它,使用mine.get. 这在本页中有记录。
首先,您可以自己查看mine.get结果:
salt 'minion0' mine.get 'roles:web' 'network.ip_addrs' expr_form='grain'
minion0:
----------
minion1:
- ip1
- ip2
minion2:
- ip
Run Code Online (Sandbox Code Playgroud)
所以你得到了一个字典,键是 minions id,值是网络 IP 地址列表。该dictsort()函数在传递给循环变量之前对键进行排序。
你最终server包含了 minion id,以及addrs它的 ip 地址列表。
第一个参数过滤您想要获取的 minions 数据,第三个 ( expr_form) 是此过滤器的过滤器类型。您可以使用glob, grain,compound基本上任何盐定位。
现在,访问role挖掘出的数据,你只需更换network.ip_addrs用role。
| 归档时间: |
|
| 查看次数: |
2406 次 |
| 最近记录: |