Salt stack 如何匹配那些没有特定自定义纹理的仆从?
一些仆从有一种类似foo:bar的谷物,而另一些没有这种谷物。我应该做些什么来匹配那些没有食物颗粒的仆从 我试过salt-G'foo:'和salt-p'foo:^$'但它们都不起作用 假设有3个仆从:Salt stack 如何匹配那些没有特定自定义纹理的仆从?,salt-stack,salt,Salt Stack,Salt,一些仆从有一种类似foo:bar的谷物,而另一些没有这种谷物。我应该做些什么来匹配那些没有食物颗粒的仆从 我试过salt-G'foo:'和salt-p'foo:^$'但它们都不起作用 假设有3个仆从: minion1: ---------- foo: bar minion2: ---------- foo: baz minion3: ---------- foo: minion1和minion2都有粮食foo,
minion1:
----------
foo:
bar
minion2:
----------
foo:
baz
minion3:
----------
foo:
minion1和minion2都有粮食foo,minion3没有定义这个粮食。如何仅匹配minion3?您可以使用-p颗粒PCRE:
Python for re模块说:
匹配如果。。。下一个不匹配。这是一个消极的展望
断言。比如,艾萨克?!只有在以下情况下,阿西莫夫才会与“艾萨克”匹配
后面没有“阿西莫夫”
或者只是简单地用否定匹配:
salt -C 'not G@foo:bar'
谢谢你的回答。我已经用一个例子详细说明了这个问题。在该示例中,您的命令将只匹配foo不是“bar”的仆从。您可以显示salt minion3 grains.item foo的输出吗?minion3的grain foo从未定义过。因此,输出将只显示键foo,而将值显示为nothing,如我上面给出的示例所示。如果从未设置过,则应为空字符串。这应该捕获两种情况,一个空字符串或非空值:salt-C'P@foo:或P@foo:^$'. 如果没有,请尝试grains.ls以查看此框中是否存在此颗粒。
salt -C 'not G@foo:bar'