Veja a seção de bloqueio de blockinfile, link
Aqui está um exemplo de função
user1$ cat testblock/tasks/main.yml
---
- name: Testing blockinfile
blockinfile:
path: /tmp/testfile.txt
block: |
<example1>
this is a test1
blah
blah
</example1>
<example2>
this is test2
hello
</example2>
...
E aqui está o manual:
user1$ cat testblock.yml
---
- hosts: localhost
roles:
- testblock
...
A execução de ansible-playbook ./testblock.yml
produz o seguinte arquivo:
user1$ cat /tmp/testfile.txt
# BEGIN ANSIBLE MANAGED BLOCK
<example1>
this is a test1
blah
blah
</example1>
<example2>
this is test2
hello
</example2>
# END ANSIBLE MANAGED BLOCK
Espero que isso ajude.