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].
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/92b3dfa2-5ad9-414e-be28-e1496ac97a60%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.