我在角色中有一个复制任务,我希望src
位置与角色本身相关,而不是调用角色的剧本。
如何在myfrole/files
内的任务中使用myrole/tasks
中的文件,我不想将角色名称作为路径的一部分包含在内,因为它不会很有意义。如果我这样做,如果我复制角色就会中断。
答案 0 :(得分:111)
如果你根本没有提供任何路径,只有文件名,Ansible会自动从角色的files
目录中选择它。
此外,自Ansible 1.8起,您可以在copy任务中使用变量role_path
。
- copy:
src: "{{ role_path }}/files/foo.conf"
dest: /etc/foo.conf
答案 1 :(得分:1)
只要存储在files
目录中,就无需指定要复制的文件的路径。
这是您的角色外观:
my-awesome-role
├───files
│ my-awesome-file
└───tasks
main.yml
这是在tasks/main.yml
中调用副本的方法:
- copy:
src: my-awesome-file
dest: '{{ some_destination }}'