# strange jinja logic

**URL:** <https://forum.ansible.com/t/strange-jinja-logic/18791>\
**Category:** Ansible Project\
**Created:** [July 17, 2015, 5:23am UTC](https://forum.ansible.com/t/strange-jinja-logic/18791 "2015-07-17T05:23:33Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Barry\_Kaplan](https://avatars.discourse-cdn.com/v4/letter/b/48db29/32.png) [@Barry\_Kaplan](https://forum.ansible.com/u/Barry_Kaplan)\
**Post date:** [July 17, 2015, 5:23am UTC](https://forum.ansible.com/t/strange-jinja-logic/18791/1 "2015-07-17T05:23:33Z")

</div>

I have:

`

- debug: var=\_consul\_install\_agent
- debug: var=consul\_use\_dnsmasq
- debug: msg=“{{\_consul\_install\_agent and consul\_use\_dnsmasq}}”

`

The two variables are true and false respectively, but the expression evaluates to true?

`  
TASK: [consul | debug var=\_consul\_install\_agent] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [10.0.196.112] =\> {  
“var”: {  
“\_consul\_install\_agent”: “False”  
}  
}

TASK: [consul | debug var=consul\_use\_dnsmasq] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [10.0.196.112] =\> {  
“var”: {  
“consul\_use\_dnsmasq”: “True”  
}  
}

TASK: [consul | debug msg=“{{\_consul\_install\_agent and consul\_use\_dnsmasq}}”] \*\*\*  
ok: [10.0.196.112] =\> {  
“msg”: “True”  
}

`

But if the expression is

`

- debug: msg=“{{\_consul\_install\_agent == true and consul\_use\_dnsmasq == true}}”  
`

Then it evals to false.

Is this expected with jinja? Without the ‘and’ the ‘== true’ seems not necessary.

---

<div class="post-metadata">

**Author:** ![Gerard\_Lynch](https://avatars.discourse-cdn.com/v4/letter/g/958977/32.png) [@Gerard\_Lynch](https://forum.ansible.com/u/Gerard_Lynch)\
**Post date:** [July 17, 2015, 11:37am UTC](https://forum.ansible.com/t/strange-jinja-logic/18791/2 "2015-07-17T11:37:32Z")

</div>

There’s a high likelihood that their type is actually ‘string’ instead of boolean, try

- debug: msg=“{{ (\_consul\_install\_agent | bool) and (consult\_use\_dnsmasq | bool) }}”

---

<div class="post-metadata">

**Author:** ![Barry\_Kaplan](https://avatars.discourse-cdn.com/v4/letter/b/48db29/32.png) [@Barry\_Kaplan](https://forum.ansible.com/u/Barry_Kaplan)\
**Post date:** [July 18, 2015, 2:58am UTC](https://forum.ansible.com/t/strange-jinja-logic/18791/3 "2015-07-18T02:58:08Z")

</div>

Indeed. The values were “== **‘True’** ” not “== True”. Thanks!
