Before continuing make sure you have a working Salt installation by following the Installation and the configuration instructions.
Stuck?
There are many ways to get help from the Salt community including our mailing list and our IRC channel #salt.
Now that you have a master and at least one minion communicating with each other you can perform commands on the minion via the salt command. Salt calls are comprised of three main components:
salt '<target>' <function> [arguments]
See also
The target component allows you to filter which minions should run the following function. The default filter is a glob on the minion id. For example:
salt '*' test.version
salt '*.example.org' test.version
Targets can be based on minion system information using the Grains system:
salt -G 'os:Ubuntu' test.version
See also
Targets can be filtered by regular expression:
salt -E 'virtmach[0-9]' test.version
Targets can be explicitly specified in a list:
salt -L 'foo,bar,baz,quo' test.version
Or Multiple target types can be combined in one command:
salt -C 'G@os:Ubuntu and webser* or E@database.*' test.version
A function is some functionality provided by a module. Salt ships with a large collection of available functions. List all available functions on your minions:
salt '*' sys.doc
Here are some examples:
Show all currently available minions:
salt '*' test.version
Run an arbitrary shell command:
salt '*' cmd.run 'uname -a'
See also
Space-delimited arguments to the function:
salt '*' cmd.exec_code python 'import sys; print sys.version'
Optional, keyword arguments are also supported:
salt '*' pip.install salt timeout=5 upgrade=True
They are always in the form of kwarg=argument
.