Intento imprimir la mosh_version
variable previamente registrada usando el debug msg
comando ansible como este:
- name: Print mosh version
debug: msg="Mosh Version: {{ mosh_version.stdout }}"
No funciona e imprime el siguiente error:
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 }}"
Lo intenté
- name: Print mosh version
debug: msg=Mosh Version: "{{ mosh_version.stdout }}"
pero esto solo imprimirá "Mosh".
¿Cuál es la mejor manera de hacer que esto funcione?
deployment
ansible
Zulakis
fuente
fuente
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]" ] } }
esto funciona, aunque realmente preferiría el mensaje personalizado ;-)Respuesta más simple
fuente
Solo quita el colon
fuente
when
eliminación de dos puntos en realidad es la forma más sencilla de resolver esto. así que voté;)Utilizo esto, observe la ubicación de las comillas dobles (") y las comillas simples (')
fuente
Cada vez que tengo problemas con caracteres especiales en cadenas / cmds Ansible hago esto:
Entonces su colon estándar se convierte
{{':'}}
Y tu tarea se convierte en:
De nuevo, esto funciona para la mayoría de los caracteres especiales, incluso las cadenas. Considera lo siguiente:
Para ejecutar esto en Ansible, simplemente aplique la misma lógica, la siguiente tarea se ejecuta como se esperaba:
fuente