Try this:

    - name: Ensure user directory exists
      file:
        path=/opt/{{ item.item }}
        state=directory
        owner={{ item.item }}
        group={{ item.item }}
        mode=0755
      with_items: passinfo.results

not tested though.

On Wednesday, February 3, 2016 at 7:48:21 AM UTC+11, Dayton Jones wrote:
>
> I have a requirement to create directories only if the specified user(s) 
> exist on the remote host... given my role defintion below, what is the 
> proper syntax to use with "when" (or other method) to only create the 
> directory only if that user exists on the host and skip the task if not 
> present?  
>
> ../vars/main.yml:
>
>> ---
>> my_user_list:
>>   - user1
>>   - user2
>>
>
>
> ../tasks/main.yml:
>
>>     - name: Check for existence of users
>>       getent: database=passwd key={{item}} fail_key=False
>>       with_items: my_user_list
>>       register: passinfo
>>     - name: Ensure user directory exists (user1)
>>       file:
>>         path=/opt/user1
>>         state=directory
>>         owner=user1
>>         group=user1
>>         mode=0755
>>       when: ??? filter to only run if user1 exists ???
>>       ignore_errors: yes
>>     - name: Ensure user directory exists (user2)
>>       file:
>>         path=/opt/user2
>>         state=directory
>>         owner=user2
>>         group=user2
>>         mode=0755
>>       when: ??? filter to only run if user2 exists ???
>>       ignore_errors: yes
>>
>
>
> here is the "output" of the passinfo variable:
>
>     "passinfo": {
>         "changed": false, 
>         "msg": "All items completed",
>         "results": [
>             {
>                 "_ansible_no_log": false,
>                 "ansible_facts": {
>                     "getent_passwd": {
>                         "user2": [
>                             "x",
>                             "1002",
>                             "1002",
>                             "",
>                             "/home/user2",
>                             "/bin/bash"
>                         ]
>                     }
>                 },
>                 "changed": false,
>                 "invocation": {
>                     "module_args": {
>                         "_ansible_check_mode": false,
>                         "_ansible_debug": false,
>                         "_ansible_diff": false,
>                         "_ansible_no_log": false,
>                         "_ansible_verbosity": 0,
>                         "database": "passwd",
>                         "fail_key": false,
>                         "key": "user2",
>                         "split": null
>                     },
>                     "module_name": "getent"
>                 },
>                 "item": "user2"
>             },
>             {
>                 "_ansible_no_log": false,
>                 "ansible_facts": {
>                     "getent_passwd": {
>                         "user1": null
>                     }
>                 },
>                 "changed": false,
>                 "invocation": {
>                     "module_args": {
>                         "_ansible_check_mode": false,
>                         "_ansible_debug": false,
>                         "_ansible_diff": false,
>                         "_ansible_no_log": false,
>                         "_ansible_verbosity": 0,
>                         "database": "passwd",
>                         "fail_key": false,
>                         "key": "user1",
>                         "split": null
>                     },
>                     "module_name": "getent"
>                 },
>                 "item": "user1",
>                 "msg": "One or more supplied key could not be found in the 
> database."
>             }
>         ]
>     }
> }
>
>
>

-- 
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/0876b6df-58a5-4ff5-a279-b485c082b311%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to