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.
