mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
40 lines
2.1 KiB
ReStructuredText
40 lines
2.1 KiB
ReStructuredText
|
.. _command:
|
||
|
|
||
|
|
||
|
command
|
||
|
```````
|
||
|
|
||
|
The command module takes the command name followed by a list of
|
||
|
arguments, space delimited.
|
||
|
|
||
|
+--------------------+----------+---------+----------------------------------------------------------------------------+
|
||
|
| parameter | required | default | comments |
|
||
|
+====================+==========+=========+============================================================================+
|
||
|
| (free form) | N/A | N/A | the command module takes a free form command to run |
|
||
|
+--------------------+----------+---------+----------------------------------------------------------------------------+
|
||
|
| creates | no | | a filename, when it already exists, this step will NOT be run |
|
||
|
+--------------------+----------+---------+----------------------------------------------------------------------------+
|
||
|
| chdir | no | | cd into this directory before running the command (0.6 and later) |
|
||
|
+--------------------+----------+---------+----------------------------------------------------------------------------+
|
||
|
|
||
|
The given command will be executed on all selected nodes. It will not
|
||
|
be processed through the shell, so variables like "$HOME" and
|
||
|
operations like "<", ">", "|", and "&" will not work. As such, all
|
||
|
paths to commands must be fully qualified.
|
||
|
|
||
|
.. note::
|
||
|
If you want to run a command through the shell (say you are using
|
||
|
'<', '>', '|', etc), you actually want the 'shell' module instead.
|
||
|
The 'command' module is much more secure as it's not affected by
|
||
|
the user's environment.
|
||
|
|
||
|
Example action from Ansible :doc:`playbooks`::
|
||
|
|
||
|
command /sbin/shutdown -t now
|
||
|
|
||
|
creates and chdir can be specified after the command. For instance, if you only want to run a command if a certain file does not exist, you can do the following::
|
||
|
|
||
|
command /usr/bin/make_database.sh arg1 arg2 creates=/path/to/database
|
||
|
|
||
|
The `creates=` and `chdir` options will not be passed to the actual executable.
|