Salt SLS实现从Grain的IP地址中移除最后一个八位组
基于IP地址前三个八位组匹配SaltStack状态条件
由于Windows Minion无法上报网关信息,你需要通过IP地址的前三个八位组(网段)来匹配状态执行条件。当前代码仅能匹配完整IP地址,可通过以下方式调整:
修改思路
- 将获取到的完整IP地址按
.分割为列表 - 提取列表前3个元素,重新拼接成网段字符串
- 基于网段字符串进行条件判断
完整代码示例
{% set full_ip = salt['grains.get']('ipv4:0') %} {% set subnet = '.'.join(full_ip.split('.')[:3]) %} user_config: cmd.run: {% if subnet == '10.1.244' or subnet == '10.1.245' %} - name: | cmd.exe net localgroup administrators user /add {% endif %}
说明
- 先获取完整IP,再通过字符串分割和拼接得到前三个八位组组成的网段
- 合并重复逻辑,只要网段是
10.1.244或10.1.245,就会执行添加用户到管理员组的命令 - 无需关心IP的第四个八位组,只要网段匹配即可触发操作
内容的提问来源于stack exchange,提问作者rumplesmyboy
相关产品推荐
相关产品推荐

