Não sabendo o conteúdo (esperado) do arquivo, só posso fornecer uma resposta parcial.
Uma possível solução seria usar um modelo , em que o conteúdo é processado a partir de fatos específicos do host, pode, por sua vez, ser colhida automaticamente na etapa setup
, fornecida com fatos personalizados.
Se os arquivos forem completamente diferentes por host, e não houver nem mesmo um padrão comum em como eles são compostos, você poderá usar a solução que você mencionou em sua pergunta ou, armazenando os arquivos no diretório files
de sua papel, use with_first_found
e elimine a necessidade de uma variável específica:
- template: >
src={{ item }}
dest=/srv/www/error/503.html
with_first_found:
- "{{ ansible_hostname }}_503.html"