[ansible] 역할에 상대적으로 ansible로 파일을 복사하는 방법은 무엇입니까?

역할 내부에 복사 작업이 있으며 src위치가 역할을 호출하는 플레이 북이 아니라 역할 자체에 상대적 일 것이라고 예상했습니다 .

이 작업을 수행하고 myfrole/files내부 작업 의 파일을 사용하는 방법은 myrole/tasks별로 의미가 없으므로 역할 이름을 경로의 일부로 포함하고 싶지 않습니다. 내가 할 경우 역할을 복제하면 중단됩니다.



답변

경로를 전혀 제공하지 않고 파일 이름 만 제공하면 Ansible은 files역할 의 디렉토리 에서 자동으로 선택합니다 .

- copy:
    src: foo.conf
    dest: /etc/foo.conf

또한 Ansible 1.8부터 복사 작업에 role_path사용할 수 있는 변수 가 있습니다 .

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


답변

files디렉토리에 저장되어있는 한 복사 할 파일의 경로를 지정할 필요가 없습니다 .

역할은 다음과 같습니다.

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

다음은에서 copy를 호출하는 방법입니다 tasks/main.yml.

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


답변