如何相对于角色复制ansible?


78

我在角色中有一个复制任务,并且我希望该src位置相对于角色本身,而不是相对于调用角色的剧本。

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

Answers:


154

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

此外,自Ansible 1.8起,role_path您可以在复制任务中使用该变量。

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

27

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

您的角色应如下所示:

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

这是在中调用copy的方法tasks/main.yml

- copy:
    src: my-awesome-file
    dest: '{{ some_destination }}'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.