J'ai une tâche de copie dans un rôle et je m'attendais à ce que l'emplacement src
soit relatif au rôle lui-même, et non au playbook qui appelle les rôles.
Comment puis-je faire ce travail et utiliser les fichiers de myfrole/files
d'une tâche à l'intérieur de myrole/tasks
, Je ne souhaite pas inclure le nom du rôle dans le chemin car cela n’a pas beaucoup de sens. Si je le fais, cela casserait si je dupliquais le rôle.
Si vous ne fournissez aucun chemin, uniquement le nom du fichier, Ansible le choisira automatiquement dans le répertoire files
du rôle.
De plus, depuis Ansible 1.8, il existe la variable role_path
que vous pourriez utiliser dans votre tâche copie .
- copy:
src: "{{ role_path }}/files/foo.conf"
dest: /etc/foo.conf
Vous n'avez pas besoin de spécifier le chemin du fichier à copier, tant qu'il est stocké dans le répertoire files
.
Voici à quoi devrait ressembler votre rôle:
my-awesome-role
├───files
│ my-awesome-file
└───tasks
main.yml
Et voici le moyen d'appeler copier dans le tasks/main.yml
:
- copy:
src: my-awesome-file
dest: '{{ some_destination }}'