Ansible stdout Formatting

Kimmel picture Kimmel · Apr 24, 2018 · Viewed 24.2k times · Source

Assuming the below tasks:

shell: "some_script.sh" register: "some_script_result"

debug: msg: "Output: {{ some_script_result.stdout_lines }}

I receive the below output:

"msg": "Output: [u'some_value',u'some_value2,u'some_value3]"

How do I get the output to print as?

"msg":

Output:

some_value

some_value2

some_value3

Ansible version is 2.4.2.

Thank you!

Answer

imjoseangel picture imjoseangel · Apr 25, 2018

Try this option. You’ll love it.

There's a new YAML callback plugin introduced with Ansible 2.5 — meaning any machine running Ansible 2.5.0 or later can automatically start using this format without installing custom plugins.

To use it, edit your ansible.cfg file (either global, in /etc/ansible/ansible.cfg, or a local one in your playbook/project), and add the following lines under the [defaults] section:

# Use the YAML callback plugin.
stdout_callback = yaml
# Use the stdout_callback when running ad-hoc commands.
bin_ansible_callbacks = True

Now I can easily read through your output message