diff options
author | mh <mh@immerda.ch> | 2010-05-20 02:14:25 +0200 |
---|---|---|
committer | mh <mh@immerda.ch> | 2010-05-20 02:14:25 +0200 |
commit | 33b7ff7beae92c09a9462ed048936cc68ba109c4 (patch) | |
tree | 131c7bde663ad310c22e748c986d57abe1eb9085 | |
parent | 8671c39470fbe8ab3196efd42963364666da45b6 (diff) |
add a define to manage users in groups
-rw-r--r-- | manifests/groups/manage_user.pp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/manifests/groups/manage_user.pp b/manifests/groups/manage_user.pp new file mode 100644 index 0000000..9df3a20 --- /dev/null +++ b/manifests/groups/manage_user.pp @@ -0,0 +1,27 @@ +define user::groups::manage_user( + $ensure = 'present', + $group, + $user = 'absent' +){ + + if ($user != 'absent'){ + $real_user = $user + } else { + $real_user = $name + } + + augeas{"manage_${real_user}_in_group_${group}": + context => '/files/etc/group', + } + if ($ensure == 'present'){ + Augeas["manage_${real_user}_in_group_${group}"]{ + changes => [ "set ${group}/user[last()+1] ${real_user}" ], + onlyif => "match ${group}/*[../user='${real_user}'] size == 0" + } + } else { + Augeas["manage_${real_user}_in_group_${group}"]{ + changes => "rm ${group}/user[.='${real_user}']", + } + } +} + |