J'essaie d'imprimer la mosh_version
variable précédemment enregistrée en utilisant la debug msg
commande ansible comme ceci:
- name: Print mosh version
debug: msg="Mosh Version: {{ mosh_version.stdout }}"
Cela ne fonctionne pas et imprime l'erreur suivante:
Note: The error may actually appear before this position: line 55, column 27
- name: Print mosh version
debug: msg="Mosh Version: {{ mosh_version.stdout }}"
^
We could be wrong, but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value. For instance:
with_items:
- {{ foo }}
Should be written as:
with_items:
- "{{ foo }}"
j'ai essayé
- name: Print mosh version
debug: msg=Mosh Version: "{{ mosh_version.stdout }}"
mais cela affichera simplement "Mosh".
Quelle est la meilleure façon de faire fonctionner cela?
deployment
ansible
Zulakis
la source
la source
TASK: [ Print mosh version] ************************************** ok: [127.0.0.1] => { "msg": "Mosh" }
ok: [127.0.0.1] => { "var": { "mosh_version.stdout_lines": [ "mosh 1.2.4a [build mosh-1.2.4-57-g9eeb2fb]" ] } }
cela fonctionne, je préfère vraiment le message personnalisé ;-)Réponse la plus simple
la source
Retirez simplement les deux points
la source
when
donc la suppression des deux points est en fait le moyen le plus simple de résoudre ce problème. donc je vote positivement;)J'utilise ceci, notez l'emplacement des guillemets doubles (") et des guillemets simples (')
la source
Chaque fois que j'ai des problèmes avec les caractères spéciaux dans les chaînes / cmds Ansible, je fais ceci:
Ainsi, votre colon standard devient
{{':'}}
Et votre tâche devient:
Encore une fois, cela fonctionne pour la plupart des caractères spéciaux, même les chaînes. Considérer ce qui suit:
Pour exécuter ceci dans Ansible, appliquez simplement la même logique, la tâche suivante s'exécute comme prévu:
la source