Yes and it seems to work 

[root@puppetmaster ~]# hiera classes -c 
/etc/puppet/environments/testing/hiera.yaml environment=testing 
 role=webserver fqdn=node1 --debug -a
DEBUG: Wed Jun 05 10:02:23 -0600 2013: Hiera YAML backend starting
DEBUG: Wed Jun 05 10:02:23 -0600 2013: Looking up classes in YAML backend
DEBUG: Wed Jun 05 10:02:23 -0600 2013: Looking for data source node1
DEBUG: Wed Jun 05 10:02:23 -0600 2013: Found classes in node1
DEBUG: Wed Jun 05 10:02:23 -0600 2013: Looking for data source webserver
DEBUG: Wed Jun 05 10:02:23 -0600 2013: Found classes in webserver
DEBUG: Wed Jun 05 10:02:23 -0600 2013: Looking for data source common
DEBUG: Wed Jun 05 10:02:23 -0600 2013: Data retrieved from 
/etc/puppet/environments/testing/hieradata/common.yaml is not a Hash, 
setting defaults
["keepalived", "apache"]


On Wednesday, June 5, 2013 9:53:25 AM UTC-6, Ygor wrote:
>
> have you tried running hiera on the command line with debug ?
>
> “Sometimes I think the surest sign that intelligent life exists elsewhere 
> in the universe is that none of it has tried to contact us.”
> Bill Waterson (Calvin & Hobbes)
>
> ------------------------------
> *From: *[email protected] <javascript:>
> *To: *[email protected] <javascript:>
> *Sent: *Wednesday, June 5, 2013 11:43:24 AM
> *Subject: *Re: [Puppet Users] Share Hiera configuration between 2 nodes?
>
> Ok maybe I spoke too soon...
>
> It looks like the hiera hierarchy is not seeing the custom fact and as a 
> result is not applying the corresponding .yaml file. I expected it to load 
> the hieradata\webserver.yaml file. However as the puppetmasterd debug log 
> shows that it skips over this and loads the osfamily .yaml file.
>
> *hiera.yaml *
> ---
> :backends:
>   - yaml
> :yaml:
>   :datadir:  /etc/puppet/environments/%{environment}/hieradata
> :hierarchy:
>   - %{fqdn}
>   - %{role}
>   - %{osfamily}
>   - common
>
> *Puppetmasterd debug messages*
> *...*
> Info: Caching node for node1
> DEBUG: Wed Jun 05 09:11:50 -0600 2013: Looking up apache_vhosts in YAML 
> backend
> DEBUG: Wed Jun 05 09:11:50 -0600 2013: Looking for data source node1
> DEBUG: Wed Jun 05 09:11:50 -0600 2013: Looking for data source RedHat
> DEBUG: Wed Jun 05 09:11:50 -0600 2013: Looking for data source common
> Notice: Compiled catalog for node1 in environment testing in 0.04 seconds
> *...*
>
>
> *Contents of hieradata folder:*
> [root@puppetmaster~]# ls  /etc/puppet/environments/testing/hieradata/
> common.yaml  webserver.yaml  node1.yaml  node2.yaml  RedHat.yaml
>
>
> *Contents of /etc/facter/facts.d/role.yaml*
> ---
> role: webserver
>
> *node1*
>
> [root@node1 /]# puppet agent -t --environment=testing
> Info: Retrieving plugin
> Info: Loading facts in 
> /var/lib/puppet/lib/facter/iptables_persistent_version.rb
> Info: Loading facts in /var/lib/puppet/lib/facter/facter_dot_d.rb
> Info: Loading facts in /var/lib/puppet/lib/facter/root_home.rb
> Info: Loading facts in /var/lib/puppet/lib/facter/puppet_vardir.rb
> Info: Loading facts in /var/lib/puppet/lib/facter/iptables_version.rb
> Info: Loading facts in /var/lib/puppet/lib/facter/pe_version.rb
> Info: Loading facts in /var/lib/puppet/lib/facter/concat_basedir.rb
> Info: Loading facts in /var/lib/puppet/lib/facter/ip6tables_version.rb
> Info: Caching catalog for node1
> Info: Applying configuration version '1370444163'
> Notice: The value is: webserver
> Notice: /Stage[main]//Node[node1]/Notify[The value is: webserver]/message: 
> defined 'message' as 'The value is: webserver'
> Notice: Finished catalog run in 0.31 seconds
>
> *Facter test*
> [root@node1 /]# facter -p role
> webserver
>
> *Puppet Versions*
> [root@node1 /]# facter --version
> 1.7.1
> [root@node1 /]# puppet --version
> 3.2.1
> [root@puppetmaster ~]# facter --version
> 1.7.1
> [root@puppetmaster ~]# puppet --version
> 3.2.1
>
> Thanks for the help!
>
> On Tuesday, June 4, 2013 2:09:48 PM UTC-6, Keith Burdis wrote:
>>
>> You could set a custom "role" fact on node1 and node2 with the value 
>> "webserver" and then use the "role" fact in your Hiera hierarchy.
>>
>> For example using facter.d on on node1 and node2:
>>
>> # cd /etc/facter/facts.d
>> # echo 'role: webserver' >> custom_facts.yaml
>> # facter -p role
>> role => webserver
>>
>>  and on the master:
>>
>> # cat /etc/hiera.yaml 
>> ...
>> :hierarchy:
>>   - %{role}
>> ...
>>
>> with the common configuration in webserver.yaml under your Hiera datadir.
>>
>>   - Keith
>>
>>
>>
>> On 4 June 2013 20:41, <[email protected]> wrote:
>>
>>> Hi, 
>>>
>>> I am trying to use Hiera in puppet 3 and I have two nodes that both need 
>>> the same configuration. In this case they are two web servers which have 
>>> the same apache configuration.
>>>
>>> Rather than creating two seperate hiera files for node1.yaml and 
>>> node2.yaml is there a way to group these by role (e.g. webserver.yaml)? I 
>>> want to avoid duplicating the configuration if possible and keep the data 
>>> in hiera.
>>>
>>> Thanks!
>>> Joe
>>>
>>> -- 
>>> 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 post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/puppet-users?hl=en.
>>> 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] <javascript:>.
> To post to this group, send email to [email protected]<javascript:>
> .
> Visit this group at http://groups.google.com/group/puppet-users?hl=en.
> 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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to