I currently have these versions of puppet related packages installed:

# yum list installed | grep puppet

facter.x86_64                   1:1.7.3-1.el6          @puppetlabs-products
hiera.noarch                    1.3.1-1.el6            @puppetlabs
puppet.noarch                   3.3.1-1.el6            @puppetlabs
puppet-dashboard.noarch         1.2.23-1.el6           @puppetlabs-products
puppet-server.noarch            3.3.1-1.el6            @puppetlabs
puppetdb.noarch                 1.5.2-1.el6            @puppetlabs
puppetdb-terminus.noarch        1.5.2-1.el6            @puppetlabs

I also have :merge_behavior set to deeper


On Wednesday, February 26, 2014 6:08:51 PM UTC-5, Andrew wrote:
>
> you need to use hiera 1.2 and enable deep merging
> On 26 Feb 2014 22:19, <[email protected] <javascript:>> wrote:
>
>> I have been doing some experimenting with Puppet + Hiera with some of my 
>> hashes, but when it is going through my hierarchy it is returning whatever 
>> hash it hits first and skipping the others.
>>
>> For my node 'sandbox1'
>>
>> sandbox.pp:
>>
>> node /^sandbox\d+/ {
>>   class { 'php':}
>>   notify { 'PHP hash':
>>     message => hiera('php::augeas',{})
>>   }
>>   $php_settings = hiera('php::augeas',{})
>>   create_resources('php::augeas',$php_settings)
>> }
>>
>>
>> hiera.yaml:
>>
>> ---
>> :backends:
>>   - json
>> :json:
>>   :datadir: /etc/puppet/hiera
>> :merge_behavior: "deeper"
>> :hierarchy:
>>   - "nodes/%{::hostname}"
>>   - "roles/%{::role}"
>>   - "provider/%{::provider}"
>>   - "provider/%{::provider}/virtual/virtual_%{::is_virtual}"
>>   - common
>>
>>
>> hiera/nodes/sandbox1.json:
>>
>> {
>>     "php::augeas" : {
>>         "php-allow_url_fopen" : {
>>             "entry"   : "PHP/allow_url_fopen",
>>             "value"   : "On"
>>         }
>>     }
>> }
>>
>>
>> hiera/roles/sandbox.json:
>>
>> {
>>     "php::augeas" : {
>>         "php-log_errors" : {
>>             "entry"   : "PHP/log_errors",
>>             "value"   : "On"
>>         }
>>     }
>> } 
>>
>>
>> hiera/common.json:
>>
>> {
>>     "php::augeas" : {
>>         "php-date_timezone" : {
>>             "entry"   : "Date/date.timezone",
>>             "value"   : "America/New_York"
>>         },
>>         "php-short_open_tag" : {
>>             "entry"   : "PHP/short_open_tag",
>>             "value"   : "On"
>>         },
>>         "php-error_log" : {
>>             "entry"   : "PHP/error_log",
>>             "value"   : "/var/log/php/php_error.log"
>>         }
>>     }
>> } 
>>
>>
>> In this configuration, *only  "php-allow_url_fopen" **from the top-level 
>> nodes hash is returned*. If I remove that nodes/sandbox1.json, it only 
>> returns the "php-log_errors" from the next "roles" hiera level down. 
>> Finally, if the nodes and roles json's are removed it will apply all three 
>> from the common.json hash.
>>
>> I have tried both native and deeper merge behaviors with the same result. 
>> The strangest thing is that the hiera command line tool on the master 
>> returns the correct hash:
>>
>> # hiera -h php::augeas ::hostname=sandbox1 ::role=sandbox -c 
>> /etc/puppet/hiera.yaml
>>
>> {"php-date_timezone"=>
>>   {"entry"=>"Date/date.timezone", "value"=>"America/New_York"},
>>  "php-short_open_tag"=>{"entry"=>"PHP/short_open_tag", "value"=>"On"},
>>  "php-error_log"=>
>>   {"entry"=>"PHP/error_log", "value"=>"/var/log/php/php_error.log"},
>>  "php-log_errors"=>{"entry"=>"PHP/log_errors", "value"=>"On"},
>>  "php-allow_url_fopen"=>{"entry"=>"PHP/allow_url_fopen", "value"=>"On"}}
>>
>>
>>  -- 
>> 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] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/puppet-users/96454179-6cd7-4c54-9ec2-2bf553e319a9%40googlegroups.com
>> .
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>

-- 
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/ddc1f9c0-8d30-43ad-856c-2fdf771f5b3e%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to