El 12/03/2014 17:19, "Jonathan Proulx" <[email protected]> escribió:
>
> see http://docs.puppetlabs.com/hiera/1/puppet.html
>
> "If you need to merge arrays or merge hashes from multiple hierarchy
> levels, you will have to use the hiera_array or hiera_hash functions
> in the body of your classes."
>
> There's not really a good example in that page, but essentially where
> 'hiera' takes the most specific patch hiera_array and heira_hash
> collect all the values across all matching hierarchies (though you
> needn't define the key in every level)
>
+1 it should be something like
common.yaml
users:
user1:
ensure: present
home: /home/user1
......
server1.yaml
users:
user3:
ensure: present
home: /home/user3
And then
$users= hiera_hash('users')
users::admin_homedir_define { $users: }
Note: code not tested
Regards
> we use this for packages to install:
>
> $basepackages = hiera_array('basepackages')
> ensure_packages($basepackages)
>
> Then in hiera be define (or not) arrays of packages by os version, role,
etc...
>
> -Jon
>
> On Wed, Mar 12, 2014 at 12:11 PM, Kenton Brede <[email protected]> wrote:
> > I'm in the process of moving to Puppet 3 and hiera.
> >
> > With my old setup I placed users that were on all servers in basenode.
Then
> > did a += for any additional users in the node definition.
> >
> > node basenode {
> > users = ['user1', 'user2']
> > }
> >
> > node server.example.com inherits basenode {
> > users += ['user3']
> > # or simple exclude the line, if there were no additional users
> > }
> >
> > With the new setup I've got a common.yaml that contains a hash of users
with
> > access to all boxes. Then I thought I'd place additional users for
> > "server1" in server1.yaml.
> >
> > common.yaml
> > users_common:
> > user1:
> > ensure: present
> > home: /home/user1
> > ......
> >
> > server1.yaml
> > server1_users:
> > user3:
> > ensure: present
> > home: /home/user3
> > ......
> >
> > Then I call like this, which just pulls the usernames from the hash and
> > creates home directories with a file type:
> >
> > class users::ldap {
> > # regular users
> > $users_common = hiera('users_common')
> > $users_common_keys = keys($users_common)
> > $users_hosts = hiera("${::hostname}_users")
> > $users_hosts_keys = keys($users_hosts)
> > $adusers_combined = flatten([ $users_common_keys, $users_hosts_keys ])
> >
> > # create ldap user home directories
> > users::admin_homedir_define { $adusers_combined: }
> > }
> >
> > Works great until there are no users for "${::hostname}_users."
> >
> > How can I make this work when "${::hostname}_users" is empty?
> > Thanks,
> >
> > --
> > Kent
> >
> >
> >
> >
> > --
> > You received this message because you are subscribed to the Google
Groups
> > "Puppet Users" group.
> > To unsubscribe from this group and stop receiving emails from it, send
an
> > email to [email protected].
> > To view this discussion on the web visit
> >
https://groups.google.com/d/msgid/puppet-users/CA%2BnSE3-%3D9zQvajiNMt9e%2BOA64fHrYwPkk4WEwhm0JBPHN598PA%40mail.gmail.com
.
> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
email to [email protected].
> To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/CABZB-sgYSky1BzZ6Vf1OHuYonAhLh-gKV%2BN_RmiQreRyWbVk_w%40mail.gmail.com
.
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/CAF_B3dcgKzCVPdEBSjEQ5y6cMR0soodHcETwJOhZnSdW4QCrNQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.