如何将相对于角色的ansible文件复制?

问题描述 投票:54回答:2

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

我如何使用myfrole/files中的任务来使用myrole/tasks中的文件,我不想将角色名称作为路径的一部分包含在内,因为它没有多大意义。如果我这样做,如果我复制角色会破坏。

ansible ansible-playbook
2个回答
113
投票

如果你没有提供任何路径,只需要文件名,Ansible将从角色的files目录中自动选择它。

另外,自Ansible 1.8以来,你可以在你的role_path任务中使用变量copy

- copy:
    src: "{{ role_path }}/files/foo.conf"
    dest: /etc/foo.conf

3
投票

您不需要指定要复制的文件的路径,只要它存储在files目录中即可。

以下是您的角色应如何:

my-awesome-role
├───files
│       my-awesome-file
└───tasks
        main.yml

以下是在tasks/main.yml中调用副本的方法:

- copy:
    src: my-awesome-file
    dest: '{{ some_destination }}'
© www.soinside.com 2019 - 2024. All rights reserved.