我尝试根据 IP 地址的第三个八位字节来匹配条件,因为 Windows Minions 不报告网关。我可以获取 IP 的颗粒信息并匹配完整的 IP,如下所示,但我只想匹配第三个八位字节:
{% set subnet = salt['grains.get']('ipv4:0') %}
user_coinfig:
cmd.run:
{% if subnet == '10.1.244.146' %}
- name: |
cmd.exe net localgroup administrators user /add
{% elif subnet == '10.1.245.146' %}
- name: |
cmd.exe net localgroup administrators user /add
{% endif %}
所需状态:
{% set subnet = salt['grains.get']('ipv4:0') %}
user_coinfig:
cmd.run:
{% if subnet == '10.1.244' %}
- name: |
cmd.exe net localgroup administrators user /add
{% elif subnet == '10.1.245' %}
- name: |
cmd.exe net localgroup administrators user /add
{% endif %}
由于 Jinja 是一种基于 Python 的模板语言,因此您可以访问 Python 的所有
string
方法。startswith()
。
所以,你可以这样做:
{% if subnet.startswith('10.1.244.') %}
- name: |
cmd.exe net localgroup administrators user /add
{% endif %}