ansible print debug msg variable
I try to print the previously registered mosh_version
variable using the ansible debug msg
command like this:
- name: Print mosh version
debug: msg="Mosh Version: {{ mosh_version.stdout }}"
It doesn't work and prints the following 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 }}"
I tried
- name: Print mosh version
debug: msg=Mosh Version: "{{ mosh_version.stdout }}"
but this will just print "Mosh".
What's the best way to get this running?
Try this:
- name: Print mosh version
debug: "msg=Mosh Version: '{{ mosh_version.stdout }}'"
More info in http://docs.ansible.com/YAMLSyntax.html#gotchas
Edited: Something like this works perfect for me:
- name: Check Ansible version
command: ansible --version
register: ansibleVersion
- name: Print version
debug:
msg: "Ansible Version: {{ ansibleVersion.stdout }}"
http://pastie.org/private/cgeqjucn3l5kxhkkyhtpta
Simplest answer
- debug: var=mosh_version.stdout
I have displayed variable and message in the same debug play.
Ansible Task
- name: Report the /boot/initramfs file status for latest installed kernel
debug:
msg: "{{ ansible_hostname }} = {{INITRAMFS_LAST_KERNEL.stdout}}"
Output
TASK [os-upgrade.linux : Report the /boot/initramfs file status for latest installed kernel] *******************************************
ok: [ANSIBLENODE] => {
"msg": "ANSIBLENODE = /boot/initramfs-3.10.0-1062.12.1.el7.x86_64.img"
}