On Thursday, August 3, 2017 at 4:16:04 PM UTC-4, Kai Stian Olstad wrote:
>
> On 03. aug. 2017 21:18, [email protected] <javascript:> wrote: 
> > capture their report via stdout, and add the reports to a single local 
> file via 
> > local_action. sometimes this works, and sometimes it does not. in all 
> cases i 
> > can see that the report is generated (stdout for each target shows on 
> the 
> > ansible controller during task execution). but sometimes all output for 
> a given 
> > target is missing from the local logfile. here is the playbook: 
> > 
> > --- 
> > - hosts: all 
> > 
> >    tasks: 
> >        - name: run report 
> >          script: pkgReport.py {{ inventory_hostname }} 
> >          register: report 
> > 
> >        - name: build local report 
> >          lineinfile: 
> >              path: "/tmp/pkgReport.txt" 
> >              insertafter: EOF 
> >              line: "{{ item }}" 
> >              state: present 
> >              create: yes 
> >          with_items: "{{ report.stdout.lines }}" 
> >          delegate_to: 127.0.0.1 
> > 
> > 
> > so first question ... can someone point out what i may be doing wrong? 
> > and of course next question ... what is the smartest way of doing this? 
>
> Lets say you have 20 host, then you would have 20 task trying to write 
> to the same file at once(or at least 5 at a time with default, because 
> forks is default set to 5), this will seldom if at all work. 
>
> You can use assemble or the template module, personally I would use the 
> template. 
>
> local_report.j2 
> --------------- 
> {% for item in ansible_play_hosts %} 
> Report for host {{ item }}: 
> {{ hostvars[item].report.stdout }} 
> {% endfor %} 
>
> And a task to create the file: 
> - name: build local report 
>    template: 
>      src: local_report.j2 
>      dest: /tmp/pkgReport.txt 
>    run_once: true 
>    delegate_to: localhost 
>
> -- 
> Kai Stian Olstad 
>

This makes a lot of sense. I thought i had multiple things running into 
each other, and I suppose
the fact that it seemed to work sometimes threw me off somewhat.

Thanks!
 

-- 
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 post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/0f0bc15e-8aff-41d4-85bc-af9c953fbeb5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to