我有以下问题:
我使用盐堆栈来管理我的小黄人,它们运行在不同的数据中心。但软件包存储库并不一致:并非所有软件包都有最新版本的salt。有了Salt stack,我当然可以解决这个问题,所以我在顶部添加了.sls:
'not G@saltversion:3003.1':
- fixes.saltversion
但我不喜欢那里。我已经尝试过几种变体,但无法选择特定粒度小于特定版本的小黄人。类似于这种情况:选择所有版本早于3003.1的小黄人来对其应用状态,这将直接从不同的回购获取包。
如何选择";小于";一粒谷物
我已经在谷歌上搜索过了,没有找到任何与我的案例相匹配的东西。这些文件对我的案子也没有帮助。我读过关于自定义匹配器的文章:但我真的需要为此实现一个自定义匹配器吗?
提前感谢大家的帮助
查看以下晶粒:saltversioninfo
。这个颗粒是一个列表:[ majorversion, patchversion ]
。
你可以瞄准释放晚于氟(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