========================= Remote execution tutorial ========================= .. include:: /_incl/requisite_incl.rst Order your minions around ========================= Now that you have a :term:`master` and at least one :term:`minion` communicating with each other you can perform commands on the minion via the :command:`salt` command. Salt calls are comprised of three main components: .. code-block:: bash salt '' [arguments] .. seealso:: :doc:`salt manpage ` target ------ 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: .. code-block:: bash salt '*' test.ping salt '*.example.org' test.ping Targets can be based on minion system information using the Grains system: .. code-block:: bash salt -G 'os:Ubuntu' test.ping .. seealso:: :doc:`Grains system ` Targets can be filtered by regular expression: .. code-block:: bash salt -E 'virtmach[0-9]' test.ping Targets can be explicitly specified in a list: .. code-block:: bash salt -L 'foo,bar,baz,quo' test.ping Or Multiple target types can be combined in one command: .. code-block:: bash salt -C 'G@os:Ubuntu and webser* or E@database.*' test.ping function -------- 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: .. code-block:: bash salt '*' sys.doc Here are some examples: Show all currently available minions: .. code-block:: bash salt '*' test.ping Run an arbitrary shell command: .. code-block:: bash salt '*' cmd.run 'uname -a' .. seealso:: :doc:`the full list of modules ` arguments --------- Space-delimited arguments to the function: .. code-block:: bash salt '*' cmd.exec_code python 'import sys; print sys.version' Optional, keyword arguments are also supported: .. code-block:: bash salt '*' pip.install salt timeout=5 upgrade=True They are always in the form of ``kwarg=argument``.