win_copy - Copies files to remote locations on windows hosts¶
New in version 1.9.2.
Synopsis¶
- The
win_copy
module copies a file on the local box to remote windows locations. - For non-Windows targets, use the copy module instead.
Parameters¶
Parameter | Choices/Defaults | Comments |
---|---|---|
content
(added in 2.3) |
When used instead of
src , sets the contents of a file directly to the specified value. This is for simple values, for anything complex or with formatting please switch to the template module. |
|
decrypt
bool (added in 2.5) |
|
This option controls the autodecryption of source files using vault.
|
dest
path required |
Remote absolute path where the file should be copied to. If src is a directory, this must be a directory too.
Use \ for path separators or \\ when in "double quotes".
If
dest ends with \ then source or the contents of source will be copied to the directory without renaming.If
dest is a nonexistent path, it will only be created if dest ends with "/" or "\", or src is a directory.If
src and dest are files and if the parent directory of dest doesn't exist, then the task will fail. |
|
force
bool (added in 2.3) |
|
If set to
yes , the file will only be transferred if the content is different than destination.If set to
no , the file will only be transferred if the destination does not exist.If set to
no , no checksuming of the content is performed which can help improve performance on larger files. |
local_follow
bool (added in 2.4) |
|
This flag indicates that filesystem links in the source tree, if they exist, should be followed.
|
remote_src
bool (added in 2.3) |
|
If
no , it will search for src at originating/master machine.If
yes , it will go to the remote/target machine for the src. |
src
path required |
Local path to a file to copy to the remote server; can be absolute or relative.
If path is a directory, it is copied (including the source folder name) recursively to
dest .If path is a directory and ends with "/", only the inside contents of that directory are copied to the destination. Otherwise, if it does not end with "/", the directory itself with all contents is copied.
If path is a file and dest ends with "\", the file is copied to the folder with the same filename.
|
Notes¶
Note
- For non-Windows targets, use the copy module instead.
- Currently win_copy does not support copying symbolic links from both local to remote and remote to remote.
- It is recommended that backslashes
\
are used instead of/
when dealing with remote paths. - Because win_copy runs over WinRM, it is not a very efficient transfer mechanism. If sending large files consider hosting them on a web service and using win_get_url instead.
Examples¶
- name: Copy a single file
win_copy:
src: /srv/myfiles/foo.conf
dest: C:\Temp\renamed-foo.conf
- name: Copy a single file keeping the filename
win_copy:
src: /src/myfiles/foo.conf
dest: C:\Temp\
- name: Copy folder to C:\Temp (results in C:\Temp\temp_files)
win_copy:
src: files/temp_files
dest: C:\Temp
- name: Copy folder contents recursively
win_copy:
src: files/temp_files/
dest: C:\Temp
- name: Copy a single file where the source is on the remote host
win_copy:
src: C:\Temp\foo.txt
dest: C:\ansible\foo.txt
remote_src: yes
- name: Copy a folder recursively where the source is on the remote host
win_copy:
src: C:\Temp
dest: C:\ansible
remote_src: yes
- name: Set the contents of a file
win_copy:
content: abc123
dest: C:\Temp\foo.txt
Return Values¶
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
checksum
string
|
success, src is a file |
sha1 checksum of the file after running copy
Sample:
6e642bb8dd5c2e027bf21dd923337cbb4214f827
|
dest
string
|
changed |
destination file/path
Sample:
C:\Temp\
|
operation
string
|
success |
whether a single file copy took place or a folder copy
Sample:
file_copy
|
original_basename
string
|
changed, src is a file |
basename of the copied file
Sample:
foo.txt
|
size
int
|
changed, src is a file |
size of the target, after execution
Sample:
1220
|
src
string
|
changed |
source file used for the copy on the target machine
Sample:
/home/httpd/.ansible/tmp/ansible-tmp-1423796390.97-147729857856000/source
|
Status¶
This module is flagged as stableinterface which means that the maintainers for this module guarantee that no backward incompatible interface changes will be made.
Maintenance¶
This module is flagged as core which means that it is maintained by the Ansible Core Team. See Module Maintenance & Support for more info.
For a list of other modules that are also maintained by the Ansible Core Team, see here.
Support¶
For more information about Red Hat’s support of this module, please refer to this Knowledge Base article
Author¶
- Jon Hawkesworth (@jhawkesworth)
- Jordan Borean (@jborean93)
Hint
If you notice any issues in this documentation you can edit this document to improve it.