如何复制与角色相关的ansible文件?

如何复制与角色相关的ansible文件?,ansible,ansible-playbook,Ansible,Ansible Playbook,我在角色中有一个复制任务,我希望src位置与角色本身相关,而不是调用角色的剧本 如何使这项工作正常并使用myfrole/files中任务中的文件myrole/tasks,我不想将角色名称作为路径的一部分,因为它没有多大意义。如果我这样做,它将在我复制角色时中断。如果您根本不提供任何路径,仅提供文件名,Ansible将自动从角色的文件目录中选择它 - copy: src: foo.conf dest: /etc/foo.conf 此外,自Ansible 1.8以来,您可以在任务中

我在角色中有一个复制任务,我希望
src
位置与角色本身相关,而不是调用角色的剧本


如何使这项工作正常并使用
myfrole/files
中任务中的文件
myrole/tasks
,我不想将角色名称作为路径的一部分,因为它没有多大意义。如果我这样做,它将在我复制角色时中断。

如果您根本不提供任何路径,仅提供文件名,Ansible将自动从角色的
文件
目录中选择它

- copy:
    src: foo.conf
    dest: /etc/foo.conf
此外,自Ansible 1.8以来,您可以在任务中使用变量
role\u path


只要文件存储在
files
目录中,就不需要指定要复制的文件的路径

以下是您的角色应该是什么样子:

my-awesome-role
├───files
│       my-awesome-file
└───tasks
        main.yml
下面是在
任务/main.yml
中调用copy的方法:

- copy:
    src: my-awesome-file
    dest: '{{ some_destination }}'

如果你没有使用角色呢?(你应该总是使用角色吗?@alex你可以使用
{{{playbook\u dir}}
。你是否应该使用角色,取决于你的项目的大小,以及你的剧本是否应该只做一件或多件小事。就我个人而言,除了快速测试之外,我还没有看到一个不使用角色的有效案例。
- copy:
    src: my-awesome-file
    dest: '{{ some_destination }}'