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 ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.