I had no idea that was possible, I've been using all sorts of kludges to 
achieve the same. 

On Monday, January 13, 2014 6:17:55 PM UTC, Adam Morris wrote:
>
>
>
> On Tuesday, January 7, 2014 1:38:06 AM UTC-8, hafizh wrote:
>>
>>
>> I notice that the tasks are very 'strict'. Once we provide an optional 
>> param, the rest of the lists must provide it too. 
>>
>> Say. I want to create two users:
>>     vars:
>>       - users:
>>         - { name: test1, uid: 1234 }
>>         - { name: test2 }
>>
>> Ideal case would be:
>>     tasks:
>>         - name: creating user
>>           user: name={{ item.name }} uid={{ item.uid }}
>>           with_items: users
>>
>>     ie, I hope Ansible will be smart enough to ignore the optional 'uid' 
>> for 'test2' but it wont. 
>>
>>
>>
> Actually, I think that you can do this, with a little creativity...
>
> vars: 
>   - users:
>     - { name: test1, uid: 1234}
>     - { name: test2}
>
> tasks:
>   -name: Create user
>    debug: msg="user name={{item.name}} {% if item.uid is defined %} 
> 'uid='{{item.uid}}{% endif %}"
>    with_items: users
>
>
> And here was the output from my testing...
> TASK: [debug msg="user name={{item.name}} {% if item.uid is defined %} 
> 'uid='{{item.uid}}{% endif %}"] *** 
> ok: [10.246.72.170] => (item={'name': 'test1', 'uid': 1234}) => {
>     "item": {
>         "name": "test1", 
>         "uid": 1234
>     }, 
>     "msg": "user name=test1  'uid='1234"
> }
> ok: [10.246.72.170] => (item={'name': 'test2'}) => {
>     "item": {
>         "name": "test2"
>     }, 
>     "msg": "user name=test2 "
> }
>
> Of course you would want to replace the
> debug: msg="user name={{item.name}} {% if item.uid is defined %} 
> 'uid='{{item.uid}}{% endif %}"
> with
> user: name={{item.name}} {% if item.uid is defined %} 
> 'uid='{{item.uid}}{% endif %}
> but I think that that should work...  It is certainly worth a try... :-)
>
> Adam
>
>
>
>  
>

-- 
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].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to