Ygor, My common.yaml is actually empty at the moment.
I think I have discovered the problem...I found that it is using the
hiera.yaml file from my master environment instead of testing but I am not
sure why...
Here is my /etc/puppet/puppet.conf
[main]
# The Puppet log directory.
# The default value is '$vardir/log'.
logdir = /var/log/puppet
# Where Puppet PID files are kept.
# The default value is '$vardir/run'.
rundir = /var/run/puppet
# Where SSL certificates are kept.
# The default value is '$confdir/ssl'.
ssldir = $vardir/ssl
confdir = /etc/puppet
environment = 'master'
[master]
environment = 'master'
hiera_config = $confdir/environments/$environment/hiera.yaml
manifest = $confdir/environments/$environment/manifests/site.pp
modulepath = $confdir/environments/$environment/modules
fileserverconfig = $confdir/environments/$environment/fileserver.conf
authconfig = $confdir/environments/$environment/auth.conf
[agent]
# The file in which puppetd stores a list of the classes
# associated with the retrieved configuratiion. Can be loaded in
# the separate ``puppet`` executable using the ``--loadclasses``
# option.
# The default value is '$confdir/classes.txt'.
classfile = $vardir/classes.txt
# Where puppetd caches the local configuration. An
# extension indicating the cache format is added automatically.
# The default value is '$confdir/localconfig'.
localconfig = $vardir/localconfig
server = puppetmaster
report = true
show_diff = true
environment = 'master'
~
On Wednesday, June 5, 2013 1:07:29 PM UTC-6, Ygor wrote:
>
> What is in /etc/puppet/environments/testing/hieradata/common.yaml ?
> I find that last debug line troubling.
>
> “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)
>
> ----- Original Message -----
> From: [email protected] <javascript:>
> To: [email protected] <javascript:>
> Sent: Wednesday, June 5, 2013 12:08:59 PM
> Subject: Re: [Puppet Users] Share Hiera configuration between 2 nodes?
>
> 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]
> To: [email protected]
> 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] .
> 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.