On Friday, 2 March 2018 21.17.16 CET John Harmon wrote:
> I don't see a way to do this with ansible, but perhaps I am missing 
> something.  I have a need to change the uid/gid of users/groups on a bunch 
> of servers; however, I don't wish to create the user/group if it is 
> missing, I just want to modify it if it exists.  The following creates the 
> users/groups.  The only state options available are present and absent.  I 
> need something like, "if present".  I could script it, but I am looking to 
> stick with the ansible stuff if possible.  Any thoughts?
> 
> - name: Backup /etc/passwd,group files
>   copy:
>     src: "{{ item.src }}"
>     dest: "{{ item.dest }}.{{ ansible_date_time.date }}"
>   with_items:
>     - { src: "/etc/passwd", dest: "/etc/passwd.bak" }
>     - { src: "/etc/group", dest: "/etc/group.bak" }
> 
> - name: Set group uids/gids
>   group:
>     name: "{{ item.name  }}"
>     gid: "{{ item.gid  }}"
>   with_items:
>     - { name: "gomgroup", gid: "2000" }
>     - { name: "pyle", gid: "2001" }
> 
> - name: Set user uids/gids
>   user:
>     name: "{{ item.name  }}"
>     uid: "{{ item.uid  }}"
>     group: "{{ item.group }}"
>   with_items:
>     - { name: "gomer", uid: "2000", group: "gomgroup" }
>     - { name: "pyle", uid: "2001", group: "pyle" }

Not tested, but something like this should work

- getent:
    database: passwd
- getent:
    database: group 

- name: Set group uids/gids
  group:
    name: "{{ item.name  }}"
    gid: "{{ item.gid  }}"
  when: getent_group[item.name] is defined
  with_items:
    - { name: "gomgroup", gid: "2000" }
    - { name: "pyle", gid: "2001" }

And for the uid you need to add
  when: getent_passwd[item.name] is defined


-- 
Kai Stian Olstad

-- 
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/8049488.seHD48eISM%40x1.
For more options, visit https://groups.google.com/d/optout.

Reply via email to