如何无需执行Salt命令即可校验其匹配的minion节点范围
Salt 复合匹配规则预校验方案
你需要校验salt -C 'G@some:grain:value and G@other:grain:value' state.highstate的目标匹配是否准确,又不想等待state.highstate或test.ping的长耗时执行,可以直接使用Salt原生的预校验参数:
1. 无交互快速校验匹配列表
在原有命令末尾追加--preview-target参数即可,该操作仅在Salt Master本地完成匹配计算,不与任何minion通信,毫秒级返回结果:
salt -C 'G@some:grain:value and G@other:grain:value' --preview-target
该方案特性:
- 匹配逻辑与Salt实际执行任务时的目标匹配逻辑完全一致,校验结果100%准确
- 完全规避离线minion超时等待、任务执行的耗时开销
- 输出仅包含匹配到的minion ID列表,无冗余信息,可直接用于后续自动化处理
2. 可选:同时校验匹配节点在线状态
如果需要同时确认符合匹配规则的节点中哪些是在线状态,可以使用salt-run的manage.present模块:
salt-run manage.present tgt='G@some:grain:value and G@other:grain:value' tgt_type=compound
该命令会返回同时满足「匹配规则+节点在线」两个条件的minion列表,耗时仅与在线节点数量正相关,远低于test.ping全量等待的耗时。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

