FAQ
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)

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 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 puppet-users+unsubscribe@googlegroups.com.
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 puppet-users+unsubscribe@googlegroups.com.
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.

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 2 of 8 | next ›
Discussion Overview
grouppuppet-users @
categoriespuppet
postedMar 12, '14 at 4:11p
activeMar 12, '14 at 7:06p
posts8
users4
websitepuppetlabs.com

People

Translate

site design / logo © 2022 Grokbase