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
-~----------~----~----~----~------~----~------~--~---