If I’m correctly understanding what it is you want I suggest that you look into 
the “throttle” keyword. It can be used for serial like behavior but on 
individual tasks or blocks.

//Oskar
________________________________
From: [email protected] <[email protected]> on 
behalf of rajthecomputerguy <[email protected]>
Sent: Friday, September 17, 2021 6:34:15 AM
To: Ansible Project <[email protected]>
Subject: [ansible-project] Re: Aggregating debug msg output

Save all your output to the file and assemble it using assemble module.

On Friday, September 17, 2021 at 1:46:14 AM UTC+5:30 [email protected] wrote:
Thanks, Roland.  The fact is, I'd like to "aggregate" (for lack of a better 
term) any debug msg output, regardless of what information the playbook is 
trying to gather.  The one I posted above is for descriptive purposes.  Rather 
than have output of the playbook look like this:

PLAY [all] *********************************************************************

TASK [system date] *************************************************************
Thursday 16 September 2021  11:49:07 -0400 (0:00:00.037)       0:00:00.037 ****
changed: [host1]

TASK [print system date] *******************************************************
Thursday 16 September 2021  11:49:08 -0400 (0:00:00.889)       0:00:00.927 ****
ok: [host1] => {
    "msg": "Hostname is: host1 and System date is: Thu Sep 16 11:49:08 EDT 2021"
}

PLAY [all] *********************************************************************

TASK [system date] *************************************************************
---
Thursday 16 September 2021  11:49:08 -0400 (0:00:00.059)       0:00:00.986 ****
changed: [host2]

TASK [print system date] *******************************************************
Thursday 16 September 2021  11:49:09 -0400 (0:00:00.965)       0:00:01.951 ****
ok: [host2] => {
    "msg": "Hostname is: host2 and System date is: Thu Sep 16 11:49:09 EDT 2021"
}

PLAY RECAP *********************************************************************
~

I'd want the to look like this:

PLAY [all] *********************************************************************

TASK [system date] *************************************************************
---
Thursday 16 September 2021  11:49:08 -0400 (0:00:00.059)       0:00:00.986 ****
changed: [host1]

Thursday 16 September 2021  11:49:07 -0400 (0:00:00.037)       0:00:00.037 ****
changed: [host2]

TASK [print system date] *******************************************************
ok: [host1] => (item=Thu Sep 16 12:41:03 EDT 2021) => {
    "msg": "Hostname is: host1 and System date is: Thu Sep 16 12:41:03 EDT 2021"
}

ok: [host2] => (item=Thu Sep 16 12:41:03 EDT 2021) => {
    "msg": "Hostname is: host2 and System date is: Thu Sep 16 12:41:03 EDT 2021"
}

PLAY RECAP *********************************************************************
~

Is that possible?
On Thursday, September 16, 2021 at 3:46:29 PM UTC-4 [email protected] wrote:
Hello,

[email protected] schrieb am Donnerstag, 16. September 2021 um 20:26:27 UTC+3:
Taking, e.g., the following simple playbook:

---

- hosts: all
  gather_facts: false
  serial: 1

  tasks:
    - name: system date
      command: date
      register: date_out

    - name: print system date
      debug:
        msg: "Hostname is: {{ inventory_hostname }} and System date is: {{ 
date_out.stdout_lines[0] }}"

Rather than the msg output is interspersed thoughout, I'd like to aggregate all 
of the debug messages from the various hosts into consecutive lines, like this:

ok: [host1] => (item=Thu Sep 16 12:41:03 EDT 2021) => {
    "msg": "Hostname is: host1 and System date is: Thu Sep 16 12:41:03 EDT 2021"
}
ok: [host2] => (item=Thu Sep 16 12:41:03 EDT 2021) => {
    "msg": "Hostname is: host2 and System date is: Thu Sep 16 12:41:03 EDT 2021"
}

I hope I'm clear on my ask.  Is this possible and, if so, how do I do it?

Thanks!

Not sure whether I'll got the point. However, using a template file you could 
collect the fact sysdate on every host and print the hostname and all sysdate 
in a task delegated to localhost.

 ... additions to playbook ...
    - set_fact: sysdate={{ date_out.stdout_lines[0] }}

    - name: dump to /tmp/DUMP
      template:
        src: dump.j2
        dest: /tmp/DUMP
      delegate_to: localhost

Template named "dump.j2" as referred in playbook. It's located in same 
directory as the playbook.
{% for host in ansible_play_hosts  %}
Hostname is: {{ host }} and System date is: {{ sysdate }}
{% endfor %}

There is also a possibility to loop over the hosts in a delegated_to task, but 
I don't remember the syntax at the moment.

BR,
Roland


--
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[email protected]>.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/49650888-ea0f-4de5-95bf-17eea22953c3n%40googlegroups.com<https://groups.google.com/d/msgid/ansible-project/49650888-ea0f-4de5-95bf-17eea22953c3n%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/HE1PR0502MB367429F725F39B11F8250FDDF3DD9%40HE1PR0502MB3674.eurprd05.prod.outlook.com.

Reply via email to