----- Luke Bigum <luke.bi...@lmax.com> wrote:
> On 18/05/12 13:46, Dan White wrote:
> > Ah, Gary !  Just the brain I wish to pick !  :)
> >
> > Thanks for the response. It makes sense.
> > However, if I perceive this properly, it would provide an All-Or-Nothing 
> > implementation of users.
> >
> > I am looking for for a way to have a master list of users in hiera and then 
> > realize/instantiate a group-keyed-subset of the master list on each node.
> >
> > “Sometimes I think the surest sign that intelligent life exists elsewhere 
> > in the universe is that none of it has tried to contact us.”
> > Bill Waterson (Calvin&  Hobbes)
> >
> 
> Why not use a define to wrap the virtualised declaration of your users, 
> or tried and doesn't work? Theoretically like this:
> 
> --------------------
> define virtualise_user ($name, $uid, ...) {
>    @user { $name:
>      uid => $uid,
>    }
> }
> 
> $all_users = hiera_hash('users')
> 
> create_resources('virtualise_user', $all_users)
> --------------------
> 

Closer, but no cigar yet !

user.pp:
-------------------------
define add_user ( $username, $uid, $ingroups, $info ) {
<clip>
}

define add_virtual_user ( $v_username, $v_uid, $v_ingroups, $v_info ) {
    @add_user { "${name}":
        username => "${v_username}",
        uid      => "${v_uid}",
        ingroups => "${v_ingroups}",
        info     => "${v_info}",
    }
}
-------------------------
/etc/puppet/hierdata/common.yaml:
-------------------------
users: 
    beast:
        v_username : beast
        v_uid      : 6666
        v_ingroups : 
        v_info     : Let's see if this works
    boo:
        v_username : boo
        v_uid      : 6667
        v_ingroups : 
        v_info     : Let's see if this works also

-------------------------

And if I say:
hiera users -c /etc/puppet/hiera.yaml

I get:
{"beast"=>{"v_info"=>"Let's see if this works", "v_username"=>"beast", 
"v_ingroups"=>nil, "v_uid"=>6666}, "boo"=>{"v_info"=>"Let's see if this works 
also", "v_username"=>"boo", "v_ingroups"=>nil, "v_uid"=>6667}}

Which is out of order, but everything is there.  That's how hashes are supposed 
to work !

But when I try to run the catalog with 
  $the_users = hiera('users')  or $the_users = hiera_hash('users')
followed by :
  create_resources ( 'add_virtual_user', $the_users )
I get:
  Must pass a parameter or all necessary values at 
/etc/puppet/manifests/nodes/puppetmaster-node.pp:15 on node puppetmaster.foo.org


“Sometimes I think the surest sign that intelligent life exists elsewhere in 
the universe is that none of it has tried to contact us.”
Bill Waterson (Calvin & Hobbes)

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to