Sua string de substituição é assim:
'{{ asterisk_db_host }}'
Após a modelagem de Jinja, isso é o que realmente é usado como a string de substituição no módulo regex:
'72.17.0.3'
Veja o primeiro termo. Não é mais , agora é
72
, o que é claramente errôneo. Uma maneira de resolver isso é fazer as aspas ao redor da parte do valor da sua substituição (porque, quando você fizer isso, haverá um caractere não digitável - a aspa - separando sua referência anterior do valor da expansão do modelo). Aqui está uma opção:
- hosts: localhost
gather_facts: false
vars:
asterisk_db_host: "172.17.0.3"
tasks:
- replace:
dest: ./cfgfile
regexp: >-
(\$amp_conf\[.AMPDBHOST.\] = )'localhost'(;)
replace: >-
'{{ asterisk_db_host }}'
Isso usa as citações do bloco YAML ( >-
) para que não precisemos nos preocupar com as citações de escape em nossas expressões, e parece fazer a coisa certa em meus testes simples.