Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Salt stack 如何匹配那些没有特定自定义纹理的仆从?_Salt Stack_Salt - Fatal编程技术网

Salt stack 如何匹配那些没有特定自定义纹理的仆从?

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,

一些仆从有一种类似foo:bar的谷物,而另一些没有这种谷物。我应该做些什么来匹配那些没有食物颗粒的仆从

我试过salt-G'foo:'和salt-p'foo:^$'但它们都不起作用

假设有3个仆从:

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'