Note
This module is part of ansible-core and included in all Ansible installations. In most cases, you can use the short module name fetch even without specifying the collections keyword. However, we recommend you use the Fully Qualified Collection Name (FQCN) ansible.builtin.fetch for easy linking to the module documentation and to avoid conflicting with other collections that may have the same module name.
dest will be overwritten if they are different than the src.Note
This module has a corresponding action plugin.
Parameter | Comments |
|---|---|
dest string / required | A directory to save the file into. For example, if |
fail_on_missing boolean | When set to Prior to Ansible 2.5, setting this would only fail if the source file was missing. The default was changed to Choices:
|
flat boolean | Allows you to override the default behavior of appending hostname/path/to/file to the destination. If This can be useful if working with a single host, or if retrieving files that are uniquely named per host. If using multiple hosts with the same filename, the file will be overwritten for each host. Choices:
|
src string / required | The file on the remote system to fetch. This must be a file, not a directory. Recursive fetching may be supported in a later release. |
validate_checksum boolean | Verify that the source and destination checksums match after the files are fetched. Choices:
|
Attribute | Support | Description |
|---|---|---|
action | Support: full | Indicates this has a corresponding action plugin so some parts of the options can be executed on the controller |
async | Support: none | Supports being used with the |
bypass_host_loop | Support: none | Forces a ‘global’ task that does not execute per host, this bypasses per host templating and serial, throttle and other loop considerations Conditionals will work as if This action will not work normally outside of lockstep strategies |
check_mode | Support: full | Can run in check_mode and return changed status prediction without modifying target, if not supported the action will be skipped. |
diff_mode | Support: full | Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode |
platform | Platforms: posix, windows | Target OS/families that can be operated against |
safe_file_operations | Support: none | Uses Ansible’s strict file operation functions to ensure proper permissions and avoid data corruption |
vault | Support: none | Can automatically decrypt Ansible vaulted files |
Note
become, the ansible.builtin.slurp module will also be used to fetch the contents of the file for determining the remote checksum. This effectively doubles the transfer size, and depending on the file size can consume all available memory on the remote or local hosts causing a MemoryError. Due to this it is advisable to run this module without become whenever possible.fail_on_missing was set.fail_when or ignore_errors to get this ability. They may also explicitly set fail_on_missing to false to get the non-failing behaviour.See also
Copy files to remote locations.
Slurps a file from remote nodes.
- name: Store file into /tmp/fetched/host.example.com/tmp/somefile
ansible.builtin.fetch:
src: /tmp/somefile
dest: /tmp/fetched
- name: Specifying a path directly
ansible.builtin.fetch:
src: /tmp/somefile
dest: /tmp/prefix-{{ inventory_hostname }}
flat: yes
- name: Specifying a destination path
ansible.builtin.fetch:
src: /tmp/uniquefile
dest: /tmp/special/
flat: yes
- name: Storing in a path relative to the playbook
ansible.builtin.fetch:
src: /tmp/uniquefile
dest: special/prefix-{{ inventory_hostname }}
flat: yes
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/ansible/builtin/fetch_module.html