Salt的新手,请耐心等待,我具有以下mine_functions:
mine_functions:
network.interfaces: []
network.ipaddrs: []
现在我有一些具有不同网络接口名称的节点,所以我设置了一个粒度来定义哪些接口将成为后端接口:
salt '*' grains.item interface_backend
node2:
----------
interface_backend:
eth1
node1:
----------
interface_backend:
enp0s8
由于我使用的是官方公式,因此我想在支柱中进行任何自定义,因此我包括以下内容:
{%- set backend_addrs = salt.saltutil.runner('mine.get',
tgt='*',
fun='network.ipaddrs',
tgt_type='glob') %}
...
entries:
{%- for node, addrs in backend_addrs.iteritems() %}
{%- for addr in addrs %}
- {{ addr }}/32
{%- endfor %}
{%- endfor %}
显然,这将为我获取所有接口的所有地址。现在,如何指定返回仅附加在 interface_backend 接口上的 地址?在我的示例中,我仅看到相当静态的配置,例如:
network.interfaces: [eth1]
我可以想象,如今通过一致的网络设备命名,更多的人可能会发现这种局限性,或者以上是解决问题的错误方法?不幸的是,CIDR过滤器将无法正常工作,因为子网将不可预测。