The problem is with the output to file. Data are overwritten, and information for only the last host the playbook is run against is captured. Additionally, i have to put any character here (denoted by ^): - local_action: copy content="{{ facter_output.stdout }}"^ dest="/Users/dyioulos/Documents/prodrept.txt" in order for the output to be in json format. That extra character is also printed, including if I use newline) is also printed.
Your help in soving this would be greatly appreciated.
Stefan Hornburg (Racke)
unread,
Apr 26, 2021, 10:35:02 AM4/26/21
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to ansible...@googlegroups.com
Hello Dimitri,
to collect the output from all hosts please try the following approach:
- local_action:
module: copy
content: |
{% for host in ansible_play_hosts %}
{{ host }}
{{ hostvars[host]['facter_output']['stdout'] }}
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Ansible Project
That worked great; thank you so much!
Dimitri Yioulos
unread,
Apr 26, 2021, 11:28:49 AM4/26/21
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Ansible Project
Racke,
For my edification, might I ask exactly what your code does?
Thanks,
Dimitri
On Monday, April 26, 2021 at 9:03:19 AM UTC-4 Dimitri Yioulos wrote:
Message has been deleted
Dimitri Yioulos
unread,
Apr 30, 2021, 8:44:16 AM4/30/21
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Ansible Project
I'm not sure if I should create another post for this ask: forgive me if I should. As per Racke, here's my playbook now, and it works great:
---
- hosts: all
gather_facts: false
become: yes
become_user: root
become_method: su
# ignore_errors: yes
tasks:
- name: list java version
command: java -version
register: java_one
- name: print output
debug:
msg: "{{ java_one.stderr_lines }}"
- local_action:
module: copy
content: |
{% for host in ansible_play_hosts %}
{{ host }}
{{ hostvars[host]['java_one']['stderr_lines'] }}
{% endfor %}
dest: "/Users/dyioulos/Documents/prodjava.txt"
run_once: yes
But, now what I want to do is return data only when the debug output includes "Java(TM)". I've searched, and tried several things, but, i'm not getting the desired result. How do I do that?