Salt SLS 从颗粒中删除 IP 地址的最后一个八位字节

问题描述 投票:0回答:1

我尝试根据 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 %}
yaml jinja2 salt-stack
1个回答
0
投票

由于 Jinja 是一种基于 Python 的模板语言,因此您可以访问 Python 的所有

string
方法。
对于这种情况,您可以使用方法
startswith()

所以,你可以这样做:

{% if subnet.startswith('10.1.244.') %}
- name: |
    cmd.exe net localgroup administrators user /add
{% endif %}
© www.soinside.com 2019 - 2024. All rights reserved.