modules - command ansible module
¿Cómo copiar archivos con ansible relativamente a la función? (2)
Tengo una tarea de copia dentro de un rol y esperaba que la ubicación del
src
fuera relativa al rol en sí, no al libro de jugadas que llama a los roles.
¿Cómo hago que esto funcione y use los archivos de
myfrole/files
de una tarea dentro de
myrole/tasks
? No quiero incluir el nombre del rol como parte de la ruta, ya que no tiene mucho sentido.
Si lo hago, se romperá si duplico el rol.
No necesitaría especificar la ruta del archivo a copiar, siempre que esté almacenado en el directorio de
files
.
Así es como debe verse su rol:
my-awesome-role
├───files
│ my-awesome-file
└───tasks
main.yml
Y esta es la forma de llamar a copy en las
tasks/main.yml
:
- copy:
src: my-awesome-file
dest: ''{{ some_destination }}''
Si no proporciona ninguna ruta, solo el nombre del archivo, Ansible la seleccionará automáticamente del directorio de
files
de la función.
Además, desde Ansible 1.8, existe la variable
role_path
que puede usar en su tarea de
copy
.
- copy:
src: "{{ role_path }}/files/foo.conf"
dest: /etc/foo.conf