Documentation

win_robocopy - Synchronizes the contents of two directories using Robocopy

New in version 2.2.

Synopsis

  • Synchronizes the contents of two directories on the remote machine.
  • Under the hood this just calls out to RoboCopy, since that should be available on most modern Windows Systems.

Options

parameter required default choices comments
dest
yes
Destination file/directory to sync (Will receive contents of src).
flags
no
Directly supply Robocopy flags. If set, purge and recurse will be ignored.
purge
no no
  • yes
  • no
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
no no
  • yes
  • no
Includes all subdirectories (Toggles the /e flag to RoboCopy).
If flags is set, this will be ignored.
src
yes
Source file/directory to sync.

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

Return Values

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

name description returned type sample
src
The Source file/directory of the sync.
always string C:\Some\Path
dest
The Destination file/directory of the sync.
always string C:\Some\Path
cmd
The used command line
always string robocopy C:\DirectoryOne C:\DirectoryTwo /e /purge
recurse
Whether or not the recurse flag was toggled.
always bool False
purge
Whether or not the purge flag was toggled.
always bool False
flags
Any flags passed in by the user.
always string /e /purge
rc
The return code returned by robocopy.
success int 1
msg
Output intrepreted into a concise message.
always string No files copied!
output
The output of running the robocopy command.
success string ------------------------------------\n ROBOCOPY :: Robust File Copy for Windows \n------------------------------------\n


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.

Status

This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

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