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. Note that this module is written to transfer log files that might not be present, so a missing remote file won’t be an error unless fail_on_missing is set to ‘yes’.

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 no
    • yes
    • no
    Makes it fails when the source file is missing.
    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-{{ ansible_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-{{ ansible_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.

        This is a Core Module

        For more information on what this means please read Core Modules

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