Yes, it can go one level deep.

You can't build conditional expressions out of conditional expressions, but
variables will expand.

I'd suggest writing a test playbook and trying it out!


On Tue, Mar 4, 2014 at 10:06 AM, Arie Skliarouk <[email protected]> wrote:

> The ansible documentation has this example:
>
> vars:
>>   epic: true
>> Then a conditional execution might look like:
>> tasks:
>>     - shell: echo "This certainly is epic!"
>>       when: epic
>
>
> Would it be possible for ansible to interpret conditionals in vars:
> section and assign proper true/false values to the variables? So that in
> example below is_amazon is assigned true?
> amazon: "yes"
> is_amazon: (amazon == "yes")
>
> On Tuesday, March 4, 2014 3:50:25 PM UTC+2, Michael DeHaan wrote:
>
>> You'll have to be sad then, at least for now.
>>
>> Too much fuzzy logic is involved for the system to know what is a
>> condition and what is a string, so only bare words
>> are evaluated as conditionals.
>>
>>
>>
>>
>> On Tue, Mar 4, 2014 at 8:41 AM, Arie Skliarouk <[email protected]> wrote:
>>
>>> Will it be easier for ansible to recognize pre-defined condition if I
>>> put it in brackets?
>>>
>>>   vars:
>>>     amazon: "yes"
>>>     lxc: "no"
>>>     is_amazon: (amazon == "yes")
>>>     is_lxc:  (lxc == "yes")
>>>
>>>   tasks:
>>>     - shell: echo hi 1
>>>       when: is_amazon or is_lxc
>>>
>>> It would be sad if there is no way to use short syntax like this...
>>>
>>> On Tuesday, March 4, 2014 3:34:15 PM UTC+2, Michael DeHaan wrote:
>>>
>>>> Complex conditionals and or statements are fine.
>>>>
>>>> when:  x > 2 or y >3
>>>>
>>>> and complex conditionals are fine as well:
>>>>
>>>> when:  (x > 2 or y > 3) and (zebras == 4)
>>>>
>>>> etc
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, Mar 4, 2014 at 8:28 AM, Arie Skliarouk <[email protected]>wrote:
>>>>
>>>>> In my scripts I also use "or" expression... How would I do that? And
>>>>> what about the poor souls that want to use complex boolean expression?...
>>>>>
>>>>> --
>>>>> Arie
>>>>>
>>>>>
>>>>> On Tuesday, March 4, 2014 2:49:44 PM UTC+2, Michael DeHaan wrote:
>>>>>
>>>>>> The following tricks are available:
>>>>>>
>>>>>> ---
>>>>>> - hosts: all
>>>>>>
>>>>>>   vars:
>>>>>>     x: 1
>>>>>>     y: 2
>>>>>>     alpha: x > 2
>>>>>>     beta:  y > 3
>>>>>>
>>>>>>   tasks:
>>>>>>
>>>>>>     - shell: echo hi 1
>>>>>>       when: alpha
>>>>>>
>>>>>>     - shell: echo hi 2
>>>>>>       when:
>>>>>>         - alpha
>>>>>>         - beta
>>>>>>
>>>>>> Note that 'when: "alpha and beta"' is ambigious to the system, and
>>>>>> won't do what you want, because it has a hard time understanding whether 
>>>>>> a
>>>>>> variable is a variable expression or a string or not.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Mar 4, 2014 at 7:11 AM, Arie Skliarouk <[email protected]>wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I am migrating ansible from 0.9 to 1.5 and complex when condition
>>>>>>> don't work anymore:
>>>>>>>
>>>>>>>   vars:
>>>>>>>     not_main: "'$c_main' == 'no'"
>>>>>>>     is_main: "'$c_main' == 'yes'"
>>>>>>>     not_lxc: "'$lxc' != 'yes'"
>>>>>>>
>>>>>>>   tasks:
>>>>>>>   # This does not work properly, it is always being applied
>>>>>>>   - name: test0.conf
>>>>>>>     action: template src=/tmp/test.conf.j2 dest=/tmp/test0.conf
>>>>>>> owner=ops group=ops mode=0444
>>>>>>>     when: not_main and not_lxc
>>>>>>>  # This works but prints warnings about using ${foo} or $foo. This
>>>>>>> is what I used in the past with ansible 0.9 (with only_if).
>>>>>>>   - name: test1.conf
>>>>>>>     action: template src=/opt/opsfs/tmp/test.conf.j2
>>>>>>> dest=/tmp/test1.conf owner=ops group=ops mode=0444
>>>>>>>     when: $not_main and $not_lxc
>>>>>>> # This works but is longer to type and not as readable as the first
>>>>>>> example
>>>>>>>   - name: test2.conf
>>>>>>>     action: template src=/opt/opsfs/tmp/test.conf.j2
>>>>>>> dest=/tmp/test2.conf owner=ops group=ops mode=0444
>>>>>>>     when: c_main == 'no' and lxc != 'yes'
>>>>>>>
>>>>>>> What is the correct way to use complex when conditions?
>>>>>>>
>>>>>>> --
>>>>>>> Arie
>>>>>>>
>>>>>>> --
>>>>>>> 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 post to this group, send email to [email protected].
>>>>>>>
>>>>>>> To view this discussion on the web visit
>>>>>>> https://groups.google.com/d/msgid/ansible-project/8d870518-5
>>>>>>> 473-4e44-826c-f6674d1fc306%40googlegroups.com.
>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>
>>>>>>
>>>>>>  --
>>>>> 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 post to this group, send email to [email protected].
>>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>>> msgid/ansible-project/0f7f4886-4abe-4a15-bc67-ec7f691e1f60%
>>>>> 40googlegroups.com.
>>>>>
>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>
>>>>
>>>>  --
>>> 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 post to this group, send email to [email protected].
>>> To view this discussion on the web visit https://groups.google.com/d/
>>> msgid/ansible-project/4714468c-370d-4dd0-b840-
>>> 6ad3e22452e4%40googlegroups.com.
>>>
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>  --
> 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 post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/82119d36-d531-4016-aff2-b2aa53df4776%40googlegroups.com
> .
>
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
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 post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAEVJ8QP8w96tFL0nekBoXmSprW6hU6bDd5scoKH_fJrKQuh3gA%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to