win_robocopy – Synchronizes the contents of two directories using Robocopy

From Get docs
Ansible/docs/2.8/modules/win robocopy module


win_robocopy – Synchronizes the contents of two directories using Robocopy

New in version 2.2.


Synopsis

  • Synchronizes the contents of files/directories from a source to destination.
  • Under the hood this just calls out to RoboCopy, since that should be available on most modern Windows systems.

Parameters

Parameter Choices/Defaults Comments

dest

path / required

Destination file/directory to sync (Will receive contents of src).

flags

string

Directly supply Robocopy flags.

If set, purge and recurse will be ignored.

purge

boolean

  • no

  • yes

Deletes any files/directories found in the destination that do not exist in the source.

Toggles the /purge flag to RoboCopy.

If flags is set, this will be ignored.

recurse

boolean

  • no

  • yes

Includes all subdirectories (Toggles the /e flag to RoboCopy).

If flags is set, this will be ignored.

src

path / required

Source file/directory to sync.



Notes

Note

  • This is not a complete port of the synchronize module. Unlike the synchronize module this only performs the sync/copy on the remote machine, not from the master to the remote machine.
  • This module does not currently support all Robocopy flags.


See Also

See also

synchronize – A wrapper around rsync to make common tasks in your playbooks quick and easy
The official documentation on the synchronize module.
win_copy – Copies files to remote locations on windows hosts
The official documentation on the win_copy module.


Examples

- name: Sync the contents of one directory to another
  win_robocopy:
    src: C:\DirectoryOne
    dest: C:\DirectoryTwo

- name: Sync the contents of one directory to another, including subdirectories
  win_robocopy:
    src: C:\DirectoryOne
    dest: C:\DirectoryTwo
    recurse: yes

- name: Sync the contents of one directory to another, and remove any files/directories found in destination that do not exist in the source
  win_robocopy:
    src: C:\DirectoryOne
    dest: C:\DirectoryTwo
    purge: yes

- name: Sync content in recursive mode, removing any files/directories found in destination that do not exist in the source
  win_robocopy:
    src: C:\DirectoryOne
    dest: C:\DirectoryTwo
    recurse: yes
    purge: yes

- name: Sync two directories in recursive and purging mode, specifying additional special flags
  win_robocopy:
    src: C:\DirectoryOne
    dest: C:\DirectoryTwo
    flags: /E /PURGE /XD SOME_DIR /XF SOME_FILE /MT:32

- name: Sync one file from a remote UNC path in recursive and purging mode, specifying additional special flags
  win_robocopy:
    src: \\Server1\Directory One
    dest: C:\DirectoryTwo
    flags: file.zip /E /PURGE /XD SOME_DIR /XF SOME_FILE /MT:32

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description

cmd

string

always

The used command line.


Sample:

robocopy C:\DirectoryOne C:\DirectoryTwo /e /purge

dest

string

always

The Destination file/directory of the sync.


Sample:

C:\Some\Path

flags

string

always

Any flags passed in by the user.


Sample:

/e /purge

msg

string

always

Output interpreted into a concise message.


Sample:

No files copied!

output

string

success

The output of running the robocopy command.


Sample:


\n ROBOCOPY :: Robust File Copy for Windows \n------------------------------------\n

purge

boolean

always

Whether or not the purge flag was toggled.


rc

integer

success

The return code returned by robocopy.


Sample:

1

recurse

boolean

always

Whether or not the recurse flag was toggled.


src

string

always

The Source file/directory of the sync.


Sample:

C:\Some\Path




Status

Authors

  • Corwin Brown (@blakfeld)

Hint

If you notice any issues in this documentation you can edit this document to improve it.


© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/win_robocopy_module.html