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]<javascript:> > > 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-5473-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] <javascript:>. >> To post to this group, send email to [email protected]<javascript:> >> . >> 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.
