Thanks for the tips. The main problem for me was lack of information
in the puppet docs about password for newly created users on Linux
systems (useradd etc). I saw no way to do --disabled-password for
example, and it wasn't clear to me what the state of the password
would be if I didn't provide it explicitly.

-Brad

On Oct 19, 12:15 pm, "Paul Lathrop" <[EMAIL PROTECTED]> wrote:
> You are running into a common misconception of people new to Puppet. A
> define is not some sort of function. You don't "run" defines. Puppet
> is a declarative language, you are trying to use it like an imperative
> language, and you will be fighting the tool the whole way.
>
> What features do you want that the predefined types don't support?
> Maybe we can help you to understand the Puppet Way to do what you want
> to do. In this example you included, I don't see you getting any
> features that are unsupported by Puppet users/groups.
>
> --Paul
>
> On Sun, Oct 19, 2008 at 12:33 AM, schickb <[EMAIL PROTECTED]> wrote:
>
> > 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