Loading...

Watch: Copy files from Windows remote hosts - Ansible module fetch

Copy files seamlessly from Windows remote hosts using Ansible ansible.builtin.fetch module. Effortlessly fetch example.txt to a local directory.

How to Copy files from Windows 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 Windows remote hosts

  • ansible.builtin.fetch
  • Copy files from remote nodes

Today we're talking about the 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) for Linux and [Ansible win_copy module](/articles/copy-files-to-windows-remote-hosts-ansible-module-wincopy) for Windows.

Parameters

  • dest path - the local path
  • src string - Remote file path
  • fail_on_missing boolean - yes / no
  • validate_checksum boolean - yes / no
  • flat boolean - no / yes

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

The only required parameters are "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 validated 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.

## Playbook

Copy files from Windows remote hosts with Ansible Playbook.

code

``yaml

---

  • name: fetch module Playbook

hosts: all

become: false

vars:

myfile: 'C:\Users\vagrant\Desktop\example.txt'

dump_dir: "logs"

tasks:

- name: fetch file

ansible.builtin.fetch:

src: "{{ myfile }}"

dest: "{{ dump_dir }}"

`

execution

``bash

ansible-pilot $ ansible-playbook -i virtualmachines/win/inventory copy\ files\ from\ remote\ hosts/fetch-windows.yml

PLAY [fetch module Playbook] **

TASK [Gathering Facts]

ok: [WindowsServer]

TASK [fetch file] *

Read the full tutorial: Copy files from Windows remote hosts - Ansible module fetch