I tried few combinations:

#####
- hosts: jump
  remote_user: deploy
  gather_facts: yes
  tasks:
    - set_fact: test_err=yes
    - debug: var=test_err
    - debug: var=test_err
      ignore_errors: test_err | bool 
#####

or 

####
- hosts: jump
  remote_user: deploy
  gather_facts: yes
  tasks:
    - set_fact: test_err={{ 'yes' |bool }}
    - debug: var=test_err
    - debug: var=test_err
      ignore_errors: test_err 
####
or 

####
- hosts: jump
  remote_user: deploy
  gather_facts: yes
  tasks:
    - set_fact: test_err=True
    - debug: var=test_err
    - debug: var=test_err
      ignore_errors: test_err
####

In all cases got following error:

####
PLAY [jump] 
******************************************************************* 

GATHERING FACTS 
*************************************************************** 
ok: [qactld1-jump]

TASK: [set_fact test_err=True] 
************************************************ 
ok: [qactld1-jump]

TASK: [debug var=test_err] 
**************************************************** 
ok: [qactld1-jump] => {
    "test_err": "True"
}

TASK: [debug var=test_err] 
**************************************************** 
ERROR: error while evaluating conditional: test_err
######


On Tuesday, October 7, 2014 10:57:16 AM UTC-4, Michael Peters wrote:
>
> You are setting test_err to the *string* yes, but ingore_errors is 
> looking for a boolean expression. Also, you don't need to using the 
> "{{ }}" syntax in ignore_errors since it is already using jinja2. Try 
> using the "bool" filter: 
>
> - hosts: jump 
>   remote_user: deploy 
>   gather_facts: yes 
>   tasks: 
>     - set_fact: test_err=yes 
>     - debug: var=test_err 
>       ignore_errors: test_err | bool 
>
>
>
> On Tue, Oct 7, 2014 at 10:51 AM, Yasir Saleem <[email protected] 
> <javascript:>> wrote: 
> > I am setting test_err to 'yes' via set_fact: 
> > 
> > below is playbook details: 
> > 
> > ###### 
> > - hosts: jump 
> >   remote_user: deploy 
> >   gather_facts: yes 
> >   tasks: 
> >     - set_fact: test_err=yes 
> >     - debug: var=test_err 
> >     - debug: var=test_err 
> >       ignore_errors: "{{ test_err }}" 
> > 
> > #### 
> > 
> > output of above playbook: 
> > 
> > ###### 
> > PLAY [jump] 
> > ******************************************************************* 
> > 
> > GATHERING FACTS 
> > *************************************************************** 
> > ok: [qactld1-jump] 
> > 
> > TASK: [set_fact test_err=yes] 
> > ************************************************* 
> > ok: [qactld1-jump] 
> > 
> > TASK: [debug var=test_err] 
> > **************************************************** 
> > ok: [qactld1-jump] => { 
> >     "test_err": "yes" 
> > } 
> > 
> > TASK: [debug var=test_err] 
> > **************************************************** 
> > Traceback (most recent call last): 
> >   File "/usr/local/bin/ansible-playbook", line 309, in <module> 
> >     sys.exit(main(sys.argv[1:])) 
> >   File "/usr/local/bin/ansible-playbook", line 249, in main 
> >     pb.run() 
> >   File "/Library/Python/2.7/site-packages/ansible/playbook/__init__.py", 
> > line 339, in run 
> >     if not self._run_play(play): 
> >   File "/Library/Python/2.7/site-packages/ansible/playbook/__init__.py", 
> > line 695, in _run_play 
> >     if not self._run_task(play, task, False): 
> >   File "/Library/Python/2.7/site-packages/ansible/playbook/__init__.py", 
> > line 468, in _run_task 
> >     task.ignore_errors =  utils.check_conditional(cond , play.basedir, 
> > task.module_vars, fail_on_undefined=C.DEFAULT_UNDEFINED_VAR_BEHAVIOR) 
> >   File "/Library/Python/2.7/site-packages/ansible/utils/__init__.py", 
> line 
> > 254, in check_conditional 
> >     conditional = template.template(basedir, conditional, inject, 
> > fail_on_undefined=fail_on_undefined) 
> >   File "/Library/Python/2.7/site-packages/ansible/utils/template.py", 
> line 
> > 115, in template 
> >     varname = template_from_string(basedir, varname, vars, 
> > fail_on_undefined) 
> >   File "/Library/Python/2.7/site-packages/ansible/utils/template.py", 
> line 
> > 357, in template_from_string 
> >     res = jinja2.utils.concat(rf) 
> >   File "<template>", line 8, in root 
> >   File "/Library/Python/2.7/site-packages/jinja2/runtime.py", line 485, 
> in 
> > _fail_with_undefined_error 
> >     raise self._undefined_exception(hint) 
> > jinja2.exceptions.UndefinedError: 'test_err' is undefined 
> > 
> > ######## 
> > 
> > Reason we are trying to use ignore_errors via variable is because we are 
> > using our own module to run 'cucumber' tests in a role, we want to give 
> > control via variable weather to stop execution upon failures to the role 
> > user. Because in case tests are run in CI ( via jenkins) we want jenkins 
> > plugin to compile results, for command line users, ansible console we 
> will 
> > have control. 
> > 
> > I hope this clarifies. 
> > 
> > Thanks, 
> > Yasir. 
> > 
> > On Tuesday, October 7, 2014 10:10:11 AM UTC-4, Mark wrote: 
> >> 
> >> Hi Yasir, 
> >> 
> >> Have you read through: 
> >> http://docs.ansible.com/playbooks_error_handling.html  ? 
> >> 
> >> Ignore_errors is taking yes or no, because simply put there isn't any 
> >> other answer possible to "Do you want me to ignore the errors?" yes/no. 
> You 
> >> are answering with "Mooo" and the system doesnt speak cowish, yet 
> >> I'm interested in knowing why do you want to let ignore_errors take a 
> >> variable? 
> >> 
> >> Regards, 
> >> Mark 
> >> 
> >> 
> >> 
> >> 
> >> On Monday, October 6, 2014 7:22:18 PM UTC+2, Yasir Saleem wrote: 
> >>> 
> >>> Hi, 
> >>>    I was trying to use ignore_errors to take a variable, but it fails. 
> >>> 
> >>> Here is example play for ignore error not working: 
> >>> 
> >>> - hosts: jump 
> >>>   remote_user: deploy 
> >>>   gather_facts: yes 
> >>>   tasks: 
> >>>     - set_fact: test_err=yes 
> >>>     - debug: var=test_err 
> >>>       ignore_errors: "{{ test_err }}" 
> >>> 
> >>> output was: 
> >>> 
> >>> ############# 
> >>> PLAY [jump] 
> >>> ******************************************************************* 
> >>> 
> >>> GATHERING FACTS 
> >>> *************************************************************** 
> >>> ok: [qa10-jump1] 
> >>> 
> >>> TASK: [set_fact test_err=yes] 
> >>> ************************************************* 
> >>> ok: [qa10-jump1] 
> >>> 
> >>> TASK: [debug var=test_err] 
> >>> **************************************************** 
> >>> Traceback (most recent call last): 
> >>>   File "/usr/local/bin/ansible-playbook", line 309, in <module> 
> >>>     sys.exit(main(sys.argv[1:])) 
> >>>   File "/usr/local/bin/ansible-playbook", line 249, in main 
> >>>     pb.run() 
> >>>   File 
> "/Library/Python/2.7/site-packages/ansible/playbook/__init__.py", 
> >>> line 339, in run 
> >>>     if not self._run_play(play): 
> >>>   File 
> "/Library/Python/2.7/site-packages/ansible/playbook/__init__.py", 
> >>> line 695, in _run_play 
> >>>     if not self._run_task(play, task, False): 
> >>>   File 
> "/Library/Python/2.7/site-packages/ansible/playbook/__init__.py", 
> >>> line 468, in _run_task 
> >>>     task.ignore_errors =  utils.check_conditional(cond , play.basedir, 
> >>> task.module_vars, fail_on_undefined=C.DEFAULT_UNDEFINED_VAR_BEHAVIOR) 
> >>>   File "/Library/Python/2.7/site-packages/ansible/utils/__init__.py", 
> >>> line 254, in check_conditional 
> >>>     conditional = template.template(basedir, conditional, inject, 
> >>> fail_on_undefined=fail_on_undefined) 
> >>>   File "/Library/Python/2.7/site-packages/ansible/utils/template.py", 
> >>> line 115, in template 
> >>>     varname = template_from_string(basedir, varname, vars, 
> >>> fail_on_undefined) 
> >>>   File "/Library/Python/2.7/site-packages/ansible/utils/template.py", 
> >>> line 357, in template_from_string 
> >>>     res = jinja2.utils.concat(rf) 
> >>>   File "<template>", line 8, in root 
> >>>   File "/Library/Python/2.7/site-packages/jinja2/runtime.py", line 
> 485, 
> >>> in _fail_with_undefined_error 
> >>>     raise self._undefined_exception(hint) 
> >>> jinja2.exceptions.UndefinedError: 'test_err' is undefined 
> >>> 
> >>> ################## 
> >>> 
> >>> When I use a static value, 'yes' it works: 
> >>> 
> >>> - hosts: jump 
> >>>   remote_user: deploy 
> >>>   gather_facts: yes 
> >>>   tasks: 
> >>>     - set_fact: test_err=yes 
> >>>     - debug: var=test_err 
> >>>       ignore_errors: yes 
> >>> 
> >>> output was: 
> >>> 
> >>> ########### 
> >>> PLAY [jump] 
> >>> ******************************************************************* 
> >>> 
> >>> GATHERING FACTS 
> >>> *************************************************************** 
> >>> ok: [qa10-jump1] 
> >>> 
> >>> TASK: [set_fact test_err=yes] 
> >>> ************************************************* 
> >>> ok: [qa10-jump1] 
> >>> 
> >>> TASK: [debug var=test_err] 
> >>> **************************************************** 
> >>> ok: [qa10-jump1] => { 
> >>>     "test_err": "yes" 
> >>> } 
> >>> 
> >>> PLAY RECAP 
> >>> ******************************************************************** 
> >>> qa10-jump1                 : ok=3    changed=0    unreachable=0 
> >>> failed=0 
> >>> ###### 
> >>> 
> >>> Isn't this a bug? 
> >>> 
> >>> I am using ansible 1.7.1 release 
> >>> 
> >>> Thanks, 
> >>> Yasir. 
> > 
> > -- 
> > 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/92b3dfa2-5ad9-414e-be28-e1496ac97a60%40googlegroups.com.
>  
>
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
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/d880976b-3ff7-4437-975f-4ce27f0fbbfe%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to