Documentation

fetch - Fetches a file from remote nodes

Synopsis

  • This module works like copy, but in reverse. It is used for fetching files from remote machines and storing them locally in a file tree, organized by hostname.

Options

parameter required default choices comments
dest
yes
A directory to save the file into. For example, if the dest directory is /backup a src file named /etc/profile on host host.example.com, would be saved into /backup/host.example.com/etc/profile
fail_on_missing
no yes
  • yes
  • no
When set to 'yes', the task will fail if the remote file cannot be read for any reason. Prior to Ansible-2.4, setting this would only fail if the source file was missing.
The default was changed to "yes" in Ansible-2.4.
flat
no
Allows you to override the default behavior of appending hostname/path/to/file to the destination. If dest ends with '/', it will use the basename of the source file, similar to the copy module. Obviously this is only handy if the filenames are unique.
src
yes
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
(added in 1.4)
no yes
  • yes
  • no
Verify that the source and destination checksums match after the files are fetched.

aliases: validate_md5

Examples

# Store file into /tmp/fetched/host.example.com/tmp/somefile
- fetch:
    src: /tmp/somefile
    dest: /tmp/fetched

# Specifying a path directly
- fetch:
    src: /tmp/somefile
    dest: /tmp/prefix-{{ inventory_hostname }}
    flat: yes

# Specifying a destination path
- fetch:
    src: /tmp/uniquefile
    dest: /tmp/special/
    flat: yes

# Storing in a path relative to the playbook
- fetch:
    src: /tmp/uniquefile
    dest: special/prefix-{{ inventory_hostname }}
    flat: yes

Notes

Note

  • When running fetch with become, the 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.
  • Prior to Ansible-2.4 this module would not fail if reading the remote file was impossible unless fail_on_missing was set. In Ansible-2.4+, playbook authors are encouraged to use 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.

Status

This module is flagged as stableinterface which means that the maintainers for this module guarantee that no backward incompatible interface changes will be made.

Support

This module is maintained by those with core commit privileges

For more information on what this means please read Module Support

For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Testing Ansible and Developing Modules.