# Ansible Conditionals not working as expected.

**URL:** <https://forum.ansible.com/t/ansible-conditionals-not-working-as-expected/18123>\
**Category:** Ansible Project\
**Created:** [April 29, 2015, 10:22am UTC](https://forum.ansible.com/t/ansible-conditionals-not-working-as-expected/18123 "2015-04-29T10:22:26Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Charles\_Sibbald](https://avatars.discourse-cdn.com/v4/letter/c/a88e4f/32.png) [@Charles\_Sibbald](https://forum.ansible.com/u/Charles_Sibbald)\
**Post date:** [April 29, 2015, 10:22am UTC](https://forum.ansible.com/t/ansible-conditionals-not-working-as-expected/18123/1 "2015-04-29T10:22:26Z")

</div>

So This code here should only run if {{ passphrase\_length.results[0].stdout }} is != "0"

However it seems to ignore the comparison.

I have even tried:

&nbsp;&nbsp;when: passphrase\_length.results[0].stdout|int != 0

No matter what I do it does not seem to behave as expected.

I have reached the point of desperation as this should work as coded, is there any strange trick required?

- name: Create empty Passphrase file  
&nbsp;&nbsp;file: path="{{ ssl\_client\_dir }}/{{ item.first\_name }}\_{{ item.surname }}.password" state=touch owner=root group=root mode=0755  
&nbsp;&nbsp;with\_items: ssl\_user\_clients

- name: check passphrase  
&nbsp;&nbsp;shell: "cat {{ ssl\_client\_dir }}/{{ item.first\_name }}\_{{ item.surname }}.password | grep '^[0-9a-zA-Z!@$%^&\*()\_?~+-=/\\].\*' | wc -c"  
&nbsp;&nbsp;with\_items: ssl\_user\_clients  
&nbsp;&nbsp;register: passphrase\_length  
&nbsp;&nbsp;ignore\_errors: yes

- debug: msg="{{ passphrase\_length.results[0].stdout }}"

- debug: var=passphrase\_length

- name: Email Passphrase  
&nbsp;&nbsp;action: mail host=localhost port=25 subject="trial password" body="your password is {{ generated\_passphrase.stdout }}" from="sender@example.com" to={{ item.email }} headers=Reply-To="sender@example.com"|X-Special="Something or other" charset=utf8  
&nbsp;&nbsp;with\_items: ssl\_user\_clients  
&nbsp;&nbsp;register: pass\_emailed  
&nbsp;&nbsp;when: passphrase\_length.results[0].stdout != "0"

- name: Email Certificate  
&nbsp;&nbsp;action: mail host=localhost port=25 subject="Welcome to the Trial" body="{{ email\_body }}" from="sender@example.com" to={{ item.email }} attach="{{ ssl\_client\_dir }}/{{ item.first\_name }}\_{{ item.surname }}.p12 {{ ssl\_certs\_dir }}/ca.crt" headers=Reply-To="sender@example.com"|X-Special="Something or other" charset=utf8  
&nbsp;&nbsp;with\_items: ssl\_user\_clients  
&nbsp;&nbsp;register: cert\_emailed  
&nbsp;&nbsp;when: passphrase\_length.results[0].stdout != "0"

- name: Write password out  
&nbsp;&nbsp;lineinfile: dest="{{ ssl\_client\_dir }}/{{ item.first\_name }}\_{{ item.surname }}.password" state=present line="{{ generated\_passphrase.stdout }}"  
&nbsp;&nbsp;with\_items: ssl\_user\_clients  
&nbsp;&nbsp;when: passphrase\_length.results[0].stdout != "0"

The log of the run:

TASK: [clientcert | Create empty Passphrase file] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
changed: [10.76.71.194] =\> (item={'org\_name': 'Acme Limited', 'first\_name': 'road', 'surname': 'runner', 'locality': 'desert', 'country': 'Cartoonland', 'state': 'neverneverland', 'email': 'road.runner@acme.Cartoonland'})

TASK: [clientcert | check passphrase] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
changed: [10.76.71.194] =\> (item={'org\_name': 'Acme Limited', 'first\_name': 'road', 'surname': 'runner', 'locality': 'desert', 'country': 'Cartoonland', 'state': 'neverneverland', 'email': 'road.runner@acme.Cartoonland'})

TASK: [clientcert | debug msg="{{ passphrase\_length.results[0].stdout }}"] \*\*\*\*  
ok: [10.76.71.194] =\> {  
&nbsp;&nbsp;&nbsp;&nbsp;"msg": "51"  
}

TASK: [clientcert | debug var=passphrase\_length] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [10.76.71.194] =\> {  
&nbsp;&nbsp;&nbsp;&nbsp;"var": {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"passphrase\_length": {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"changed": true,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"msg": "All items completed",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"results": [  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"changed": true,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"cmd": "cat /etc/ssl/acme/clients/road\_runner.password | grep '^[0-9a-zA-Z!@$%^&\*()\_?~+-=/\\].\*' | wc -c",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"delta": "0:00:00.011639",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"end": "2015-04-29 10:04:39.908388",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"invocation": {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"module\_args": "cat /etc/ssl/acme/clients/road\_runner.password | grep '^[0-9a-zA-Z!@$%^&\*()\_?~+-=/\\].\*' | wc -c",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"module\_name": "shell"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"item": {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"country": "Cartoonland",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"email": "road.runner@acme.Cartoonland",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"first\_name": "road",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"locality": "desert",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"org\_name": "Acme Limited",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"state": "neverneverland",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"surname": "runner"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"rc": 0,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"start": "2015-04-29 10:04:39.896749",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"stderr": "",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"stdout": "51",  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"stdout\_lines": [  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"51"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;],  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"warnings":   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}  
&nbsp;&nbsp;&nbsp;&nbsp;}  
}

TASK: [clientcert | Email Passphrase] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [10.76.71.194] =\> (item={'org\_name': 'Acme Limited', 'first\_name': 'road', 'surname': 'runner', 'locality': 'desert', 'country': 'Cartoonland', 'state': 'neverneverland', 'email': 'road.runner@acme.Cartoonland'})

TASK: [clientcert | Email Certificate] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [10.76.71.194] =\> (item={'org\_name': 'Acme Limited', 'first\_name': 'road', 'surname': 'runner', 'locality': 'desert', 'country': 'Cartoonland', 'state': 'neverneverland', 'email': 'road.runner@acme.Cartoonland'})

TASK: [clientcert | Write password out] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
changed: [10.76.71.194] =\> (item={'org\_name': 'Acme Limited', 'first\_name': 'road', 'surname': 'runner', 'locality': 'desert', 'country': 'Cartoonland', 'state': 'neverneverland', 'email': 'road.runner@acme.Cartoonland'})

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [June 3, 2015, 11:21pm UTC](https://forum.ansible.com/t/ansible-conditionals-not-working-as-expected/18123/2 "2015-06-03T23:21:52Z")

</div>

In your first example, too many moustaches!!, when has an implied {{ }} around the expression, it won’t work when you add {{ }} inside a when.

have you tried this?:

when: not passphrase\_length.results[0].stdout == “0”
