I am working on defining users and groups manually. I know there are
basic predefined types, but they don't support all of the features
I'll want, and I am learning in the process. I'm a bit stumped when
trying to add a user to multiple groups that are defined in an array.
Currently I have code similar to that below, but its wrong since I am
not handling the $groups array correctly. How can I run add_to_group
once for each group?


define make_group($desc = "") {
   exec { "addgroup --gecos \"$desc\" \"$title\"":
       unless => "grep $title /etc/group",
       path   => "/usr/bin:/usr/sbin:/bin",
   }
}

define add_to_group($group) {
    exec { "adduser $title $group":
       unless  => "groups $title | grep $group",
       path    => "/usr/bin:/usr/sbin:/bin",
    }
}

define make_user($fullname, $groups="") {
    exec { "adduser-$title":
       command => "adduser --disabled-password --gecos \"$fullname\"
\"$title\"",
       creates => "/home/$title",
       path    => "/usr/bin:/usr/sbin:/bin",
    }

    if $groups {
        add_to_group { $title:
           group   => $groups,
           require => [Class["all_groups"], Exec["adduser-$title"]],
        }
    }
}

class all_groups {
   make_group { "sudoers":
       desc => "users allowed to sudo",
   }
   make_group { "admins":}
   make_group { "another":}
}


class all_users {
    make_user { "example":
       fullname => "Full Name",
       groups   => ["sudoers", "another"],
    }
}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to