2016-02-18 11 views
22

Mam zadanie kopiowania wewnątrz roli i oczekiwałem, że lokalizacja src będzie relatywna względem samej roli, a nie playbooka, który wywołuje role.Jak kopiować pliki z ansiblami relatywnie do roli?

Jak to zrobić i użyć plików z myfrole/files z zadania wewnątrz myrole/tasks, nie chcę dołączać nazwy roli jako części ścieżki, ponieważ nie ma to większego sensu. Jeśli to zrobię, pęknie, jeśli powielę tę rolę.

Odpowiedz

52

Jeśli nie podasz żadnej ścieżki w ogóle, po prostu nazwa pliku, Ansible wybierze go automatycznie z katalogu files tej roli.

Dodatkowo, ponieważ Ansible 1.8, istnieje zmienna role_path, której można użyć do zadania kopiowania.

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