如何解决Saltstack:如何在 top.sls 中定义“小于版本的包...”
我有以下问题:
我使用 salt stack 来管理在不同数据中心运行的 Minion。但是软件包存储库并不一致:并非所有版本都有最新版本的 salt。使用 Salt stack 我当然可以解决这个问题,所以我添加到 top.sls:
'not G@saltversion:3003.1':
- fixes.saltversion
但我不喜欢那里。我尝试了几种变体,但无法选择具有小于特定版本的特定粒度的仆从。就像在这种情况下:选择所有版本比 3003.1 旧的 Minion 以对其应用状态,直接从不同的 repo 获取包。
如何选择一个 Grain 的“小于”?
我已经用谷歌搜索过,没有找到与我的情况相符的内容。文档对我的情况也没有帮助。我读过自定义匹配器:但我真的需要为此实现自定义匹配器吗?
提前感谢大家的帮助
解决方法
看看下面的颗粒:saltversioninfo
。
这个grain是一个列表:[ majorversion,patchversion ]
。
您可以像这样定位发布晚于 Fluorine (2019.2.0) 的随从:
'P@saltversioninfo:0:\b(?:3[0-9]{2}[0-2])\b or ( G@saltversioninfo:0:3003 and G@saltversioninfo:1:0 ):
- match: compound
- fixes.saltversion
此复合匹配将针对版本在 3000 和 3003.0 之间的随从。
这有点静态,你需要在新版本发布后修改它。但我希望这会帮助你。
编辑:
上面的匹配器未经测试,我没有旧版本的仆从。您应该在使用以下 salt 命令之前测试匹配器:
salt -C 'P@saltversioninfo:0:\b(?:3[0-9]{2}[0-2])\b or ( G@saltversioninfo:0:3003 and G@saltversioninfo:1:0 )' test.ping
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。