Como copiar arquivos com ansible relativamente à função?




ansible-playbook (2)

Tenho uma tarefa de cópia dentro de uma função e esperava que o local src fosse relativo à função em si, não à cartilha que chama as funções.

Como eu faço isso funcionar e uso os arquivos de myfrole/files de uma tarefa dentro de myrole/tasks , não quero incluir o nome da função como parte do caminho, pois não faz muito sentido. Se eu fizer isso vai quebrar se eu duplicar a função.


Se você não fornecer nenhum caminho, apenas o nome do arquivo, o Ansible o selecionará automaticamente no diretório de files da função.

Além disso, desde o Ansible 1.8, existe a variável role_path que você pode usar na sua tarefa de copy .

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

Você não precisaria especificar o caminho do arquivo para copiar, desde que esteja armazenado no diretório de files .

Veja como sua função deve ser:

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

E aqui está a maneira de chamar copy nas tasks/main.yml :

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




ansible-playbook