On 05/21/2014 11:37 AM, Andrew Pashkin wrote:
> Thanks for the tips, didnt know about both!
>
> What if I want to "declare" variables somewhere, to tell user about
> what he can use, but leave that variables "undefined" so they will
> fail is defined test? What people usually do in this situations?
> I want to make file like required_vars.yml and put all required
> variables there, and then do something like this:
>
> - name: check required variables
> fail: msg="Variable '{{ item }}' is not defined"
> when: item is defined
> with_items:
> - include: required_vars.yml
>
> Is there way to do this?
You can put in the required_vars.yml file:
---
required_vars:
- myvar1
- myvar2
Then, in the playbook:
---
- hosts: myhosts
vars_files:
- /path/to/required_vars.yml
tasks:
- fail: msg="Variable '{{ item }}' is not defined"
when: item not in hostvars[inventory_hostname]
with_items: required_vars
Normally, you would also want to document the structure of your vars, so
I would suggest you to write a 'readme' file with example definitions of
the all possible variables, both mandatory and non-mandatory.
> On 21.05.2014 11:02, 'Petros Moisiadis' via Ansible Project wrote:
>> On 05/21/2014 08:24 AM, Andrew Pashkin wrote:
>>> I want to make my playbook in a way where process will fail with an
>>> error if user was not provided required parameters, what is the way to
>>> do that in Ansible?
>>>
>> The default behavior is to fail if using a variable that is not defined.
>> There is also a configuration option that disables this, and then you
>> can use "{{ myvar | mandatory }}" to explicitly have the same effect.
>> Keep in mind, though, that the failure occurs when reaching a task that
>> uses an undefined variable. If you want to fail before any task is
>> executed, you could add another task at the top of your tasks that fails
>> if a mandatory variable is not defined. For example:
>>
>> tasks:
>> - fail: msg="Variable '{{ item }}' is not defined"
>> when: item not in hostvars[inventory_hostname]
>> with_items:
>> - myvariable1
>> - myvariable2
>>
>
> --
> With kind regards, Andrew Pashkin.
> cell phone - +7 (985) 898 57 59
> Skype - waves_in_fluids
> e-mail - [email protected]
> --
> 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]
> <mailto:[email protected]>.
> To post to this group, send email to [email protected]
> <mailto:[email protected]>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/537C65DE.3070404%40gmx.co.uk
> <https://groups.google.com/d/msgid/ansible-project/537C65DE.3070404%40gmx.co.uk?utm_medium=email&utm_source=footer>.
> 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/537C6D88.40302%40yahoo.gr.
For more options, visit https://groups.google.com/d/optout.