Hello,
[email protected] schrieb am Mittwoch, 28. April 2021 um 08:47:15 UTC+3:
> Dear All,
>
> I am executing the df -kh command saving the result in csv but result is
> not coming in proper csv format.
>
> --------Playbook--------
>
> ---
> - name: Generate the disk spacke in csvormat
> hosts: all
> tasks:
> - name: disk space
> shell: "df -kh"
> register: shell_output
>
> - set_fact: t1="{{
> hostvars[inventory_hostname]['shell_output']['stdout_lines'] }}"
> - debug: var=t1
> - name: Generate Report
> template:
> src: hosts.j2
> dest: /tmp/host_report.csv
> delegate_to: localhost
> run_once: yes
>
> -------template: -----------
>
> #SNo., Filesystem, Size, Used, Avail, Use%, Mounted on
>
> {% for hostnode in ansible_play_hosts %}
> {{ loop.index }},{{ t1 }},{{ hostnode }}
>
> {% endfor %}
>
> -please advice..
>
You did not tell us what kind of problems you encountered and may be what
you expect. Typically, many people - including me - do not answer.
Thus, missing problem description:
1. the template produces a single line for every host. Output of the df
command contains one line per filesystem/disk
2. t1 contains lines of data separated by one or more spaces. Separators -
I assume - should be single ','
3. the header of df output is include as first line in t1
Solutions
(1) make a second loop in hosts.j2 for the lines in t1
(2) use some expression to replace one or more whitespaces with a ','
(3) not addressed, this remains to you
{% for hostnode in ansible_play_hosts %}
{% for df_line in t1 %}
{{ loop.index }},{{ df_line | regex_replace('\s+', ',') }},{{ hostnode }}
{% endfor %}
{% endfor %}
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].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/a5aa099c-8066-4451-8a36-62b777710531n%40googlegroups.com.