Compound matchersΒΆ
- Compound matcher
- A combination of many target definitions that can be combined with boolean operators.
Compound matchers allow very granular minion targeting using any of Salt's
matchers. The default matcher is a glob
match, just as
with CLI and top file matching. To match using anything other than a
glob, prefix the match string with the appropriate letter from the table below,
followed by an @
sign.
Letter | Match Type | Example |
---|---|---|
G | Grains glob | G@os:Ubuntu |
E | PCRE Minion ID | E@web\d+\.(dev|qa|prod)\.loc |
P | Grains PCRE | P@os:(RedHat|Fedora|CentOS) |
L | List of minions | L@minion1.example.com,minion3.domain.com or bl*.domain.com |
I | Pillar glob | I@pdata:foobar |
S | Subnet/IP address | S@192.168.1.0/24 or S@192.168.1.100 |
R | Range cluster | R@%foo.bar |
Matchers can be joined using boolean
and
, or
, and not
operators.For example, the following string matches all Debian minions with a hostname
that begins with webserv
, as well as any minions that have a hostname which
matches the regular expression
web-dc1-srv.*
:
salt -C 'webserv* and G@os:Debian or E@web-dc1-srv.*' test.ping
That same example expressed in a top file looks like the following:
base:
'webserv* and G@os:Debian or E@web-dc1-srv.*':
- match: compound
- webserver
Note that a leading not
is not supported in compound matches. Instead,
something like the following must be done:
salt -C '* and not G@kernel:Darwin' test.ping