How to copy files with ansible relatively to the role?
You wouldn't need to specify the path of the file to copy, as long as it is stored in files
directory.
Here's how your role should look like:
my-awesome-role
├───files
│ my-awesome-file
└───tasks
main.yml
And here's the way to call copy in the tasks/main.yml
:
- copy:
src: my-awesome-file
dest: '{{ some_destination }}'
If you do not provide any path at all, just the filename, Ansible will pick it automatically from the files
directory of the role.
- copy:
src: foo.conf
dest: /etc/foo.conf
Additionally, since Ansible 1.8, there is the variable role_path
which you could use in your copy task.
- copy:
src: "{{ role_path }}/files/foo.conf"
dest: /etc/foo.conf