.. glossary:: minion id A unique identifier for a given minion. By default the minion id is the FQDN of that host but this can be overridden.
Each minion needs a unique identifier. By default when a minion starts for the first time it chooses its :abbr:`FQDN (fully qualified domain name)` as that identifier. The minion id can be overridden via the minion's :conf_minion:`id` configuration setting.
Tip
minion id and minion keys
The :term:`minion id` is used to generate the minion's public/private keys and if it ever changes the master must then accept the new key as though the minion was a new host.
The default matching that Salt utilizes is shell-style globbing around the :term:`minion id`. This also works for states in the :term:`top file`.
Note
You must wrap :command:`salt` calls that use globbing in single-quotes to prevent the shell from expanding the globs before Salt is invoked.
Match all minions:
salt '*' test.ping
Match all minions in the example.net domain or any of the example domains:
salt '*.example.net' test.ping salt '*.example.*' test.ping
Match all the webN
minions in the example.net domain
(web1.example.net
, web2.example.net
… webN.example.net
):
salt 'web?.example.net' test.ping
Match the web1
through web5
minions:
salt 'web[1-5]' test.ping
Match the web-x
, web-y
, and web-z
minions:
salt 'web-[x-z]' test.ping
Minions can be matched using Perl-compatible regular expressions (which is globbing on steroids and a ton of caffeine).
Match both web1-prod
and web1-devel
minions:
salt -E 'web1-(prod|devel)' test.ping
When using regular expressions in a State's :term:`top file`, you must specify
the matcher as the first option. The following example executes the contents of
webserver.sls
on the above-mentioned minions.
base:
'web1-(prod|devel)':
- match: pcre
- webserver
At the most basic level, you can specify a flat list of minion IDs:
salt -L 'web1,web2,web3' test.ping