ansible.builtin.script (v2.16.5) — module

Runs a local script on a remote node after transferring it

| "added in version" 0.9 of ansible.builtin"

Authors: Ansible Core Team, Michael DeHaan

This plugin has a corresponding action plugin.

Install Ansible via pip

Install with pip install ansible-core==2.16.5

Description

The M(ansible.builtin.script) module takes the script name followed by a list of space-delimited arguments.

Either a free-form command or O(cmd) parameter is required, see the examples.

The local script at the 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(ansible.builtin.raw) module.

This module is also supported for Windows targets.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Run a script with arguments (free form)
  ansible.builtin.script: /some/local/script.sh --some-argument 1234
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Run a script with arguments (using 'cmd' parameter)
  ansible.builtin.script:
    cmd: /some/local/script.sh --some-argument 1234
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Run a script only if file.txt does not exist on the remote node
  ansible.builtin.script: /some/local/create_file.sh --some-argument 1234
  args:
    creates: /the/created/file.txt
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Run a script only if file.txt exists on the remote node
  ansible.builtin.script: /some/local/remove_file.sh --some-argument 1234
  args:
    removes: /the/removed/file.txt
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Run a script using an executable in a non-system path
  ansible.builtin.script: /some/local/script
  args:
    executable: /some/remote/executable
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Run a script using an executable in a system path
  ansible.builtin.script: /some/local/script.py
  args:
    executable: python3
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Run a Powershell script on a Windows host
  script: subdirectories/under/path/with/your/playbook/script.ps1

Inputs

    
cmd:
    description:
    - Path to the local script to run followed by optional arguments.
    type: str

chdir:
    description:
    - Change into this directory on the remote node before running the script.
    type: str
    version_added: '2.4'
    version_added_collection: ansible.builtin

creates:
    description:
    - A filename on the remote node, when it already exists, this step will B(not) be
      run.
    type: str
    version_added: '1.5'
    version_added_collection: ansible.builtin

decrypt:
    default: true
    description:
    - This option controls the autodecryption of source files using vault.
    type: bool
    version_added: '2.4'
    version_added_collection: ansible.builtin

removes:
    description:
    - A filename on the remote node, when it does not exist, this step will B(not) be
      run.
    type: str
    version_added: '1.5'
    version_added_collection: ansible.builtin

free_form:
    description:
    - Path to the local script file followed by optional arguments.
    type: str

executable:
    description:
    - Name or path of an executable to invoke the script with.
    type: str
    version_added: '2.6'
    version_added_collection: ansible.builtin

See also