Good day, all.
I've created a simple package update playbook, which also creates a report
of updated packages:
- hosts: mytesthosts
gather_facts: false
become: yes
tasks:
- name: install all updates
yum:
name: '*'
update_cache: yes
state: latest
- name: List updated packages
shell: rpm -qa --last | grep "$(date +%a\ %d\ %b\ %Y)" |cut -f 1 -d "
"|sort -n
register: result
tags:
- lsupdates
- debug:
msg: "{{ result.stdout_lines }}"
tags:
- prupdates
- local_action:
module: copy
content: |
{% set t1 = now().strftime("%m/%d/%Y") %}
{% for host in ansible_play_hosts %}
{{ host }}:
The following packages were updated on {{ t1 }}
{{ hostvars[host]['result']['stdout'] }}
{% endfor -%}
dest: "/home/dyioulos/updates.txt"
run_once: yes
tags:
- report
This does almost exactly what I want it to. The report looks like this:
test1:
The following packages were updated on 11/27/2023
alternatives-1.24-1.el9.x86_64
apr-util-1.6.1-23.el9.x86_64
apr-util-bdb-1.6.1-23.el9.x86_64
~
test2:
The following packages were updated on 11/27/2023
Note that there were no updates applied to test2. I'd like that to be
reflected in the report, so that after "The following packages ...", it
says "None". I would guess this requires if-then language in the inline
jinja2. My searche for, and attempts at, a solution have been unsuccessful.
Your help, as always, would be appreciated.
--
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/eed79255-29d0-49c5-88e5-9b06577933a2n%40googlegroups.com.