Ansible does not have a module that can be used to rename files. The copy module can be used to copy files. When you want to rename a file on a managed node (e.g. target system), the command module can be used, like this. In this example, the command module is used to rename foo.txt to bar.txt.
- name: "rename foo.txt to bar.txt" command: "mv foo.txt bar.txt"
Or the shell module can be used, like this. In this example, the shell module is used to rename foo.txt to bar.txt.
- name: "rename foo.txt to bar.txt" shell: "mv foo.txt bar.txt"
The following should be produced.
TASK [rename foo.txt to bar.txt] changed: [server1.example.com]
By default, no stdout is printed. The register module can be used to print output to the console.
non-zero return code
If non-zero return code is being displayed in the output of the play, refer to our article on resolving non-zero return code.
Sudo / Become
If you want to perform a task on target server(s) that requires the use of sudo, refer to our article on using the become module.
Certain arguments can be used with the shell command. In this example, the chdir (change directory) argument is used to perform the shell command from a particular directory.
- name: ps command shell: "ls" arg: chdir: /root
connection module / delegate_to module