diff options
author | Matt Martz <matt@sivel.net> | 2020-05-13 21:14:53 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-13 19:14:53 -0700 |
commit | 4c4406b2df3eb23ae0015067fa8c026777cd961e (patch) | |
tree | 6b0f391891bca8c0911b6862127f5c4be4cdf997 /lib/ansible/modules/script.py | |
parent | c43f275c7e7f51f6506fa15e451bf48237c1bd91 (diff) | |
download | ansible-4c4406b2df3eb23ae0015067fa8c026777cd961e.tar.gz |
Flatten the directory hierarchy of modules (#68966)
* Flatten the directory hierarchy of modules
* Update ignore.txt, flatten units
* Update imports
* Completely flatten the modules directory
* Update sanity ignore
* Fix some sanity test ignores
* Fix relative import
* Fix docs builds without category
* ci_complete
* Clean up docs. ci_complete
* Adjust needs/file alias
* ci_complete
* fix hardcoded ping module paths
Co-authored-by: Matt Davis <mrd@redhat.com>
Diffstat (limited to 'lib/ansible/modules/script.py')
-rw-r--r-- | lib/ansible/modules/script.py | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/lib/ansible/modules/script.py b/lib/ansible/modules/script.py new file mode 100644 index 0000000000..ed66947c4b --- /dev/null +++ b/lib/ansible/modules/script.py @@ -0,0 +1,90 @@ +# Copyright: (c) 2012, Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +from __future__ import absolute_import, division, print_function +__metaclass__ = type + +ANSIBLE_METADATA = {'metadata_version': '1.1', + 'status': ['stableinterface'], + 'supported_by': 'core'} + +DOCUMENTATION = r''' +--- +module: script +version_added: "0.9" +short_description: Runs a local script on a remote node after transferring it +description: + - The C(script) module takes the script name followed by a list of space-delimited arguments. + - Either a free form command or C(cmd) parameter is required, see the examples. + - The local script at path will be transferred to the remote node and then executed. + - The given script will be processed through the shell environment on the remote node. + - This module does not require python on the remote system, much like the M(raw) module. + - This module is also supported for Windows targets. +options: + free_form: + description: + - Path to the local script file followed by optional arguments. + cmd: + type: str + description: + - Path to the local script to run followed by optional arguments. + creates: + description: + - A filename on the remote node, when it already exists, this step will B(not) be run. + version_added: "1.5" + removes: + description: + - A filename on the remote node, when it does not exist, this step will B(not) be run. + version_added: "1.5" + chdir: + description: + - Change into this directory on the remote node before running the script. + version_added: "2.4" + executable: + description: + - Name or path of a executable to invoke the script with. + version_added: "2.6" +notes: + - It is usually preferable to write Ansible modules rather than pushing scripts. Convert your script to an Ansible module for bonus points! + - The C(ssh) connection plugin will force pseudo-tty allocation via C(-tt) when scripts are executed. Pseudo-ttys do not have a stderr channel and all + stderr is sent to stdout. If you depend on separated stdout and stderr result keys, please switch to a copy+command set of tasks instead of using script. + - If the path to the local script contains spaces, it needs to be quoted. + - This module is also supported for Windows targets. +seealso: +- module: shell +- module: win_shell +author: + - Ansible Core Team + - Michael DeHaan +extends_documentation_fragment: + - decrypt +''' + +EXAMPLES = r''' +- name: Run a script with arguments (free form) + script: /some/local/script.sh --some-argument 1234 + +- name: Run a script with arguments (using 'cmd' parameter) + script: + cmd: /some/local/script.sh --some-argument 1234 + +- name: Run a script only if file.txt does not exist on the remote node + script: /some/local/create_file.sh --some-argument 1234 + args: + creates: /the/created/file.txt + +- name: Run a script only if file.txt exists on the remote node + script: /some/local/remove_file.sh --some-argument 1234 + args: + removes: /the/removed/file.txt + +- name: Run a script using an executable in a non-system path + script: /some/local/script + args: + executable: /some/remote/executable + +- name: Run a script using an executable in a system path + script: /some/local/script.py + args: + executable: python3 +''' |