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.

Reply via email to