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.