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.