Adicionando ganchos aos papéis do Ansible

Ao escrever papéis Ansible, vale a pena deixar espaço para a inserção de tarefas (como callbacks ou ganchos).

Por exemplo, em [role] /tasks/main.yml:

- task 1
- task 2
<--- you want to allow something to happen here.
- task 3

Para fazer isso, adicione um arquivo vazio em (por exemplo) [role]/hooks/empty.ymle adicione uma instrução de inserção como a seguinte:

- include: "{{ hook_variable | default(lookup('pipe', 'pwd') ~ '/hooks/empty.yml') }}"

Onde hook_variableé um caminho completo para o arquivo de tarefas a ser incluído.

Um exemplo que usa o playbook_dir:

hook_variable: "{{ playbook_dir }}/hooks/tasks-file.yml" 

A razão pela qual o defaultfiltro é usado é porque é necessário apontar para um arquivo existente com include. O exemplo acima usa o lookupplugin para encontrar o caminho da sua função.