Thanks all!  Hiera is smarter than I knew.  This is great. :)
Kent

On Wed, Mar 12, 2014 at 1:42 PM, José Luis Ledesma <
[email protected]> wrote:

> 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<https://groups.google.com/d/msgid/puppet-users/CAF_B3df73_1LiovbO4LWfvOzdicq2ACw5Q3XtBkG7O0S11sJ9w%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%2BnSE38AT0Mj1fTO7DfJ-nYj_yc_Zvn84KNU6qXJQTENozKjXA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to