Context
I have an Ansible playbook that includes a very long task, up to one hour.
Very simplified, it looks like:
- hosts: localhost
tasks:
- name: Short task
debug:
msg: "I'm quick!"
- name: Long task
shell: "sleep 15s"
When the user runs the playbook, the output is at first:
PLAY [localhost] ********************
TASK [Gathering Facts] **************
ok: [127.0.0.1]
TASK [Short task] *******************
ok: [127.0.0.1] => {
"msg": "I'm quick!"
}
(hang there until Long task is done)
TASK [Long task] ********************
changed: [127.0.0.1]
Problem
The end users of the playbook believe that there is a problem with Short task
since it hangs there, while it's Long task
that is causing the delay.
Question
How could I configure ansible or the playbook to print the headers defined in name:
before excuting the task?
What I what to achieve is an output like:
PLAY [localhost] ********************
TASK [Gathering Facts] **************
ok: [127.0.0.1]
TASK [Short task] *******************
ok: [127.0.0.1] => {
"msg": "I'm quick!"
}
TASK [Long task] ********************
(and hang there during the execution)
changed: [127.0.0.1]
Best Answer
Migrating my comment to an answer upon OP's request
I am using Ansible 2.9.2.
I tried with no config file and with a config file with no value declared for
stdout_callback
(default). I cannot reproduce your problem in either case.This is my test playbook:
And the result (in both cases. Note: interruption by user after task header display)
Double check which config file you are loading with
ansible-playbook --version
in the directory where you are going to launch the playbook. I also suggest you try without any config file to see if it fixes your issue (and then see which setting is actually causing the issue).Added from OP's comment: it turns out the problematic setting in ansible.cfg in this specific case was
display_skipped_hosts=False