# condition in playbook

**URL:** <https://forum.ansible.com/t/condition-in-playbook/38754>\
**Category:** Ansible Project\
**Created:** [April 17, 2024, 7:22am UTC](https://forum.ansible.com/t/condition-in-playbook/38754 "2024-04-17T07:22:23Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![thirumalairaja](https://avatars.discourse-cdn.com/v4/letter/t/c6cbf5/32.png) [@thirumalairaja](https://forum.ansible.com/u/thirumalairaja)\
**Post date:** [April 17, 2024, 7:22am UTC](https://forum.ansible.com/t/condition-in-playbook/38754/1 "2024-04-17T07:22:23Z")

</div>

hi all,

below is my playbook ia m trying to add some variable in extra\_vars: argument and based on the condition but its giving error can some guide me how can we mention this like if string ‘oracle’ is there in template\_name variable i need to add some extra var otherwise it should not add.

- name: Run PPS Patch  
template\_run:  
awx\_url: “{{ awx\_url }}”  
username: “{{ username }}”  
password: “{{ password }}”  
scm\_branch\_for\_agent: “{{ scm\_branch\_for\_PPS }}”  
project\_name: “{{ project\_name }}”  
template\_name: “{{ job\_temp\_name }}”  
customEE\_name: “{{ customEE\_name }}”  
inventory\_name: “{{ inventory\_name }}”  
ip\_add: “{{ vm\_ipv4\_address }}”  
skip\_tags: “{{ skip\_tags }}”  
extra\_vars:  
sat\_client\_id: “{{ sat\_client\_id }}”  
sat\_client\_secret: “{{ sat\_client\_secret }}”  
websec\_prod\_id: “{{ websec\_prod\_id }}”  
websec\_prod\_secret: “{{ websec\_prod\_secret }}”  
radius\_secret: “{{ radius\_secret }}”  
{% if oracle in job\_temp\_name %}  
ansible\_distribution: “RedHat”  
patch\_enablerepo: “value”  
standard\_enablerepo: “value”  
{% endif %}  
playbook: “{{ patch\_playbook }}”  
when: not is\_pps\_template or (‘FAILED’ in status\_check.tie\_patch)  
register: ppsstatus\_check  
until: “‘patch.yml completed successfully’ in ppsstatus\_check.output”  
retries: 3  
delay: 10  
tags:
- pps\_update
- pps-patch

---

<div class="post-metadata">

**Author:** ![dnmvisser](https://avatars.discourse-cdn.com/v4/letter/d/8e8cbc/32.png) [@dnmvisser](https://forum.ansible.com/u/dnmvisser)\
**Post date:** [April 17, 2024, 10:04am UTC](https://forum.ansible.com/t/condition-in-playbook/38754/2 "2024-04-17T10:04:10Z")

</div>

Hii,  
I have never seen a task called "template\_run", is this something  
custom that you built?

---

<div class="post-metadata">

**Author:** ![utoddl](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/utoddl/32/249_2.png) [@utoddl](https://forum.ansible.com/u/utoddl)\
**Post date:** [April 17, 2024, 2:01pm UTC](https://forum.ansible.com/t/condition-in-playbook/38754/3 "2024-04-17T14:01:08Z")

</div>

I don’t know what consumes this (“template\_run”?), but you could try this:

extra\_vars:  
sat\_client\_id: “{{ sat\_client\_id }}”  
sat\_client\_secret: “{{ sat\_client\_secret }}”  
websec\_prod\_id: “{{ websec\_prod\_id }}”  
websec\_prod\_secret: “{{ websec\_prod\_secret }}”  
radius\_secret: “{{ radius\_secret }}”  
ansible\_distribution: ‘{{ “RedHat” if “oracle” in job\_temp\_name else omit }}’

patch\_enablerepo: ‘{{ “value” if “oracle” in job\_temp\_name else omit }}’

standard\_enablerepo: ‘{{ “value” if “oracle” in job\_temp\_name else omit }}’

```auto

```

but I don’t really expect that to work.

You’d have to be pretty desperate to use this, but I would handle it using my “logical” filter:

```auto
    - name: Run PPS Patch
      template_run:
        awx_url: "{{ awx_url }}"
        username: "{{ username }}"
        password: "{{ password }}"
        scm_branch_for_agent: "{{ scm_branch_for_PPS }}"
        project_name: "{{ project_name }}"
        template_name: "{{ job_temp_name }}"
        customEE_name: "{{ customEE_name }}"
        inventory_name: "{{ inventory_name }}"
        ip_add: "{{ vm_ipv4_address }}"
        skip_tags: "{{ skip_tags }}"
        <b># requires "ansible-galaxy collection install utoddl.logical"
        extra_vars: "{{ extra_vars_ | utoddl.logical.logical }}"</b>
        playbook: "{{ patch_playbook }}"
      when: not is_pps_template or ('FAILED' in status_check.tie_patch)
      vars:
        extra_vars_:
          sat_client_id: "{{ sat_client_id }}"
          sat_client_secret: "{{ sat_client_secret }}"
          websec_prod_id: "{{ websec_prod_id }}"
          websec_prod_secret: "{{ websec_prod_secret }}"
          radius_secret: "{{ radius_secret }}"
          <b><<tmp:
            - if:
              - "{{ 'oracle' in job_temp_name }}"
              - ansible_distribution: "RedHat"
              - patch_enablerepo: "value"
              - standard_enablerepo: "value"</b>
      register: ppsstatus_check
      until: "'patch.yml completed successfully' in ppsstatus_check.output"
      retries: 3
      delay: 10
      tags:
       - pps_update
       - pps-patch

```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/ansible/original/1X/1882d9a01da5d8996a862359b0913cc568a39b84.svg) [@system](https://forum.ansible.com/u/system)\
**Post date:** [April 17, 2024, 2:28pm UTC](https://forum.ansible.com/t/condition-in-playbook/38754/4 "2024-04-17T14:28:07Z")

</div>

This won't work as playbooks themselves are not jinja2 evaluated, only  
keys inside a play are

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{% if oracle in job\_temp\_name %}  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ansible\_distribution: "RedHat"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;patch\_enablerepo: "value"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;standard\_enablerepo: "value"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{% endif %}

An alternative would be:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ansible\_distribution: "{{ oracle in job\_temp\_name|  
ternary('RedHat', omit) }}"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;patch\_enablerepo: "{{ oracle in job\_temp\_name|  
ternary('value', omit) }}"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;standard\_enablerepo: "{{ oracle in job\_temp\_name|  
ternary('value', omit) }}"

---

<div class="post-metadata">

**Author:** ![thirumalairaja](https://avatars.discourse-cdn.com/v4/letter/t/c6cbf5/32.png) [@thirumalairaja](https://forum.ansible.com/u/thirumalairaja)\
**Post date:** [April 17, 2024, 3:13pm UTC](https://forum.ansible.com/t/condition-in-playbook/38754/5 "2024-04-17T15:13:50Z")

</div>

let me try this thanks,
