Comment formater une variable dans Ansible valeur

Étant donné que Ansible les processus de toutes les variables à travers Jinja2, et de faire quelque chose comme ceci est possible:

- name: Debug sequence item value
  debug: msg={{ 'Item\:\ %s'|format(item) }}
  with_sequence: count=5 format="%02d"

Qui correctement interpole la chaîne:

ok: [server.name] => (item=01) => {"item": "01", "msg": "Item: 01"}
ok: [server.name] => (item=02) => {"item": "02", "msg": "Item: 02"}
ok: [server.name] => (item=03) => {"item": "03", "msg": "Item: 03"}
ok: [server.name] => (item=04) => {"item": "04", "msg": "Item: 04"}
ok: [server.name] => (item=05) => {"item": "05", "msg": "Item: 05"}

Pourquoi, alors, n'est-ce pas le travail:

- name: Debug sequence item value
  debug: msg={{ 'Item\:\ %02d'|format(int(item)) }}
  with_sequence: count=5

Ce qui, apparemment, provoque une sorte de problème d'analyse dont les résultats dans notre chaîne souhaitée rendu détaillé:

ok: [server.name] => (item=01) => {"item": "01", "msg": "{{Item\\:\\ %02d|format(int(item))}}"}

De noter que dans l'exemple ci-dessus item est une chaîne, car le format par défaut de with_sequence est %d, et format() ne jette pas la valeur de item au format requis par la chaîne d'interpolation %02d, d'où la nécessité de fonte avec int().

Est-ce un bug ou ai-je raté quelque chose?

OriginalL'auteur Ivan | 2013-08-05