Try my code, its just what you want. El 12/03/2014 19:14, "Kenton Brede" <[email protected]> escribió:
> Thanks for the help all. Maybe I'm approaching this in the wrong way but > the example puts all users on each box. I'm trying to do something like: > > users_common = admin1, admin2 > server1 = users_common + user1 > server2 = users_common > server3 = users_common + user1, user3 > > The goal is to not have to list the admin users in each host.yaml file, > but include them. > > From what I gather hiera doesn't allow: > > sever1.yaml > include users_common > > server1_users: > user1: > ensure: present > home: /home/user1 > > Thanks, > Kent > > > > > > > On Wed, Mar 12, 2014 at 12:38 PM, José Luis Ledesma < > [email protected]> wrote: > >> >> 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<https://groups.google.com/d/msgid/puppet-users/CAF_B3dcgKzCVPdEBSjEQ5y6cMR0soodHcETwJOhZnSdW4QCrNQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Kent Brede > > > > > -- > 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-n54w0aYaGwt%2BrMj%2BiretvhOv%2BO43q6RGZ4GwCXo_QHg%40mail.gmail.com<https://groups.google.com/d/msgid/puppet-users/CA%2BnSE3-n54w0aYaGwt%2BrMj%2BiretvhOv%2BO43q6RGZ4GwCXo_QHg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > 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_B3df73_1LiovbO4LWfvOzdicq2ACw5Q3XtBkG7O0S11sJ9w%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
