Ansible modèle ajoute " u " à la matrice de modèle
J'ai le texte suivant vars
à l'intérieur de mon ansible playbook j'ai eu la structure suivante
domains:
- { main: 'local1.com', sans: ['test.local1.com', 'test2.local.com'] }
- { main: 'local3.com' }
- { main: 'local4.com' }
Et avoir les éléments suivants à l'intérieur de la ma conf.j2
{% for domain in domains %}
[[acme.domains]]
{% for key, value in domain.iteritems() %}
{% if value is string %}
{{ key }} = "{{ value }}"
{% else %}
{{ key }} = {{ value }}
{% endif %}
{% endfor %}
{% endfor %}
Maintenant, quand je vais dans la machine virtuelle et voir le fichier-je obtenir suivantes:
Sortie
[[acme.domains]]
main = "local1.com
sans = [u'test.local1.com', u'test2.local.com']
[[acme.domains]]
main = "local3.com"
[[acme.domains]]
main = "local4.com"
Avis de la u à l'intérieur de la sans
tableau.
Excpeted sortie
[[acme.domains]]
main = "local1.com"
sans = ["test.local1.com", "test2.local.com"]
[[acme.domains]]
main = "local3.com"
[[acme.domains]]
main = "local4.com"
Pourquoi est-ce qui se passe et comment puis-je résoudre ce problème?
J'ai fini de dumping de la variable json, et il a fixé (pour jinja2). stackoverflow.com/a/50612950/999943
OriginalL'auteur Steve | 2017-01-07
Vous devez vous connecter pour publier un commentaire.
Vous obtenez
u' '
parce que vous imprimez à l'objet contenant les chaînes Unicode et c'est de cette façon Python rend par défaut.Vous pouvez la filtrer avec
list | join
filtres:Ou vous pouvez compter sur le fait, que la chaîne de sortie après
sans =
est un JSON et le rendre avecto_json
filtre:Soit, vous obtiendrez:
Mais le premier est plus polyvalent.
Ansible fournit
to_json
filtre et c'est ce que je voulais utiliser.OriginalL'auteur techraf