使用 mine.get 从 state.sls 中的有序字典获取值
Get value using mine.get from a ordered dictionary in state.sls
我在 pillar 中定义了一个地雷来获取 salt minion 的 ip。当我在盐状态下使用矿山时,我得到了一本字典。有没有办法过滤掉并从中获取第一项。
这是我在支柱中定义的我的:
ip_add:
- mine_function: grains.get
- ipv4
这是我的状态文件:
{% set id = 'aws-vm1' %}
{% set addrs = salt['mine.get'](id, 'ip_add') %}
{% for key in salt['mine.get'](id, 'ip_add') %}
Test:
file.append:
- name: C:\test
- text: {{addrs}}
我得到的输出是:
OrderedDict([('aws-vm1', ['10.93.143.235', '127.0.0.1'])])
我想获取第一个ip,以便我可以在minions之间共享它
我找到了解决方法。我从我的
中获取了 IP 列表
aws-vm1:
----------
aws-vm1:
- 10.93.143.235
- 127.0.0.1
并通过 {{ip[0]}}
获取第一个值,这是我想要的私有 IP。
{% set id = 'aws-vm1' %}
# Returns a dict OrderedDict
{% set ip_list = salt['mine.get'](id, 'ip_add') %}
{% set ip= ip_list.values() | first %}
Test:
file.append:
- name: C:\test
- text: {{ip[0]}}
我在 pillar 中定义了一个地雷来获取 salt minion 的 ip。当我在盐状态下使用矿山时,我得到了一本字典。有没有办法过滤掉并从中获取第一项。
这是我在支柱中定义的我的:
ip_add: - mine_function: grains.get - ipv4
这是我的状态文件:
{% set id = 'aws-vm1' %}
{% set addrs = salt['mine.get'](id, 'ip_add') %}
{% for key in salt['mine.get'](id, 'ip_add') %}
Test:
file.append:
- name: C:\test
- text: {{addrs}}
我得到的输出是:
OrderedDict([('aws-vm1', ['10.93.143.235', '127.0.0.1'])])
我想获取第一个ip,以便我可以在minions之间共享它
我找到了解决方法。我从我的
中获取了 IP 列表aws-vm1:
----------
aws-vm1:
- 10.93.143.235
- 127.0.0.1
并通过 {{ip[0]}}
获取第一个值,这是我想要的私有 IP。
{% set id = 'aws-vm1' %}
# Returns a dict OrderedDict
{% set ip_list = salt['mine.get'](id, 'ip_add') %}
{% set ip= ip_list.values() | first %}
Test:
file.append:
- name: C:\test
- text: {{ip[0]}}