O exercício afirma que é necessário utilizar aspas simples para referenciar variáveis. Não parece ser o caso, como pode-se verificar abaixo:
$ ansible --version
ansible 2.5.1
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/vagrant/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.15rc1 (default, Nov 12 2018, 14:31:15) [GCC 7.3.0]
$
$ cat hosts
[wordpress]
172.17.177.40 ansible_user=vagrant ansible_ssh_private_key_file=keys/wordpress.pem
$
$ cat provisioning.yml
---
- hosts: all
tasks:
- ping:
data: '{{ variavel }}'
...
$
$ ansible-playbook -v -i hosts provisioning.yml --extra-vars variavel=oie
Using /etc/ansible/ansible.cfg as config file
PLAY [all] *****************************************************************
TASK [Gathering Facts] *****************************************************
ok: [172.17.177.40]
TASK [ping] ****************************************************************
ok: [172.17.177.40] => {"changed": false, "ping": "oie"}
PLAY RECAP *****************************************************************
172.17.177.40 : ok=2 changed=0 unreachable=0 failed=0
De fato, observando a especificação do YAML, fica claro que a única diferença entre utilizar aspas duplas em comparação com as aspas simples é a forma de escaping. E nenhum dos estilos se importa com os caracteres {}
.
O comportamento que eu observo está correto, ou passou batido alguma coisa?