# jinja2 conditional help

**URL:** <https://forum.ansible.com/t/jinja2-conditional-help/38602>\
**Category:** Ansible Project\
**Created:** [November 27, 2023, 2:10pm UTC](https://forum.ansible.com/t/jinja2-conditional-help/38602 "2023-11-27T14:10:55Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dimitri\_Yioulos](https://avatars.discourse-cdn.com/v4/letter/d/b5ac83/32.png) [@Dimitri\_Yioulos](https://forum.ansible.com/u/Dimitri_Yioulos)\
**Post date:** [November 27, 2023, 2:10pm UTC](https://forum.ansible.com/t/jinja2-conditional-help/38602/1 "2023-11-27T14:10:55Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Will\_McDonald](https://avatars.discourse-cdn.com/v4/letter/w/f475e1/32.png) [@Will\_McDonald](https://forum.ansible.com/u/Will_McDonald)\
**Post date:** [November 27, 2023, 3:09pm UTC](https://forum.ansible.com/t/jinja2-conditional-help/38602/2 "2023-11-27T15:09:54Z")

</div>

I haven’t tested this but does something like:

{{ hostvars[host][‘result’][‘stdout’]|default(“None”, true) }}

Give the output you need?

cf:

- [https://support.sendwithus.com/jinja/default/](https://support.sendwithus.com/jinja/default/)
- [https://jinja.palletsprojects.com/en/3.1.x/templates/#jinja-filters.default](https://jinja.palletsprojects.com/en/3.1.x/templates/#jinja-filters.default)

---

<div class="post-metadata">

**Author:** ![Dimitri\_Yioulos](https://avatars.discourse-cdn.com/v4/letter/d/b5ac83/32.png) [@Dimitri\_Yioulos](https://forum.ansible.com/u/Dimitri_Yioulos)\
**Post date:** [November 27, 2023, 3:25pm UTC](https://forum.ansible.com/t/jinja2-conditional-help/38602/3 "2023-11-27T15:25:57Z")

</div>

Will, worked perfectly - thanks!
