Loading...

Watch: Copy files from remote hosts - Remote to Local - Ansible module fetch

Learn how to use Ansible's fetch module to copy files from remote hosts with a practical, real-life playbook example.

How to copy files from remote hosts with Ansible?

I'm going to show you a live Playbook with some simple Ansible code.

I'm Luca Berton and welcome to today's episode of Ansible Pilot

Ansible copy files from remote hosts

Today we're talking about Ansible module fetch.

The full name is ansible.builtin.fetch which means is part of the collection of modules "builtin" with ansible and shipped with it.

This module is pretty stable and out for years.

The purpose is to copy files from remote locations. Please note that the opposite is done by [Ansible copy module](/articles/copy-files-to-remote-hosts-ansible-module-copy).

Parameters

  • dest _path_
  • src _string_
  • fail_on_missing _boolean_
  • validate_checksum _boolean_
  • flat _boolean_

The parameter list is pretty wide but I'll summarize the most useful.

The only required parameter is "dest" which specifies a directory to save the file into and the "src" specifies the source files in the remote hosts. It

must be a file, not a directory.

The "fail_on_missing" boolean is set to true so the task is going to fail if the file doesn't exist.

The file is going to be transferred and validate in the source and the destination with a checksum. If we don't want this behavior we could override with

the "validate_checksum" option.

The "flat" option allows you to override the default behavior of appending hostname/path/to/file to the destination.

Demo

Let's jump in a real-life playbook to copy files from remote hosts with Ansible

  • _fetch.yml_

``yaml

---

  • name: fetch module Playbook

hosts: all

become: true

vars:

log_file: "/var/log/messages"

dump_dir: "logs"

tasks:

- name: fetch log

ansible.builtin.fetch:

src: "{{ log_file }}"

dest: "{{ dump_dir }}"

``

[code with ❤️ in GitHub](https://github.com/lucab85/ansible-pilot/tree/master/copy%20files%20from%20remote%20hosts)

Conclusion

Now you know how to Copy files to remote hosts with Ansible.

Read the full tutorial: Copy files from remote hosts - Remote to Local - Ansible module fetch