Thanks for the reply John. Here's my hiera.yaml file:

---
:backends:
  - yaml
:yaml:
  :datadir: "/etc/puppet/%{::environment}/hieradata"
:hierarchy:
  - "nodes/%{::clientcert}"
  - "roles/%{::esg_role}"
  - common

My puppet.conf file on the puppet master:

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
templatedir=$confdir/templates
server=puppet.eastsidegamestudio.com
privatekeydir = $ssldir/private_keys { group = service }
hostprivkey = $privatekeydir/$certname.pem { mode = 640 }
pluginsync=true

[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY
dns_alt_names = puppet.eastsidegamestudio.com
autosign = $confdir/autosign.conf { owner = service, group = service, mode
= 664 }

[production]
manifest = /etc/puppet/production/manifests/site.pp
modulepath = /etc/puppet/production/modules
fileserverconfig = /etc/puppet/production/fileserver.conf
templatedir = /etc/puppet/production/templates/

[staging]
manifest = /etc/puppet/staging/manifests/site.pp
modulepath = /etc/puppet/staging/modules
fileserverconfig = /etc/puppet/staging/fileserver.conf
templatedir = /etc/puppet/staging/templates/

[development]
manifest = /etc/puppet/development/manifests/site.pp
modulepath = /etc/puppet/development/modules
fileserverconfig = /etc/puppet/development/fileserver.conf
templatedir = /etc/puppet/development/templates/

And finally, the agent node's puppet.conf:

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
templatedir=$confdir/templates
server=puppet.eastsidegamestudio.com

[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY

[agent]
environment=development

I tried runnning the puppet agent and specifying the environment on the
command line but it didn't make a difference.I also moved the environment
directive in the agent conf file to the [main] section, but still no change.

Running hiera from the command line with the same settings as the agent
has, I get this:

$ hiera -d classes ::environment=development ::esg_role=couchbase
DEBUG: Thu Sep 12 17:45:31 +0000 2013: Hiera YAML backend starting
DEBUG: Thu Sep 12 17:45:31 +0000 2013: Looking up classes in YAML backend
DEBUG: Thu Sep 12 17:45:31 +0000 2013: Looking for data source
roles/couchbase
DEBUG: Thu Sep 12 17:45:31 +0000 2013: Found classes in roles/couchbase
[{"couchbase"=>nil}]

Testing for fact esg_role on the agent node:

$ facter esg_role
couchbase

For the record, my puppet version is 3.2.4, hiera is 1.2.1.

Hope this helps.

Regards,
Guy


On Thu, Sep 12, 2013 at 10:02 AM, jcbollinger <john.bollin...@stjude.org>wrote:

>
>
> On Wednesday, September 11, 2013 5:50:18 PM UTC-5, Guy Knights wrote:
>>
>> I'm not sure at all what's going on here, but I've spent a lot of time
>> reading over the puppet hiera docs and setting everything up, but when I
>> run puppet agent it just seems to ignore the hiera setup completely.
>>
>> Both the puppet master and agent nodes have exactly the same versions of
>> puppet and hiera (installed via the official puppet APT repository). I've
>> laid out my hiera files like this: /etc/hiera/hiera.yaml,
>> /etc/hiera/data/%{::**environment}, have symlinked both
>> /etc/puppet/hiera.yaml and /etc/hiera.yaml to /etc/hiera/hiera.yaml, and
>> have tested the hiera setup using the command line utility. All seems good.
>>
>>
>
> Puppet uses hiera only during catalog compilation, so agent nodes do not
> normally require it.  Correspondingly, only hiera data residing on the
> master contribute to catalogs compiled by the master -- is that your
> problem?
>
>
>
>> However, when I run puppet on the agent node it doesn't install any of
>> the classes I've outlined in my hierarchy. I tried running the puppet
>> master in debug mode to see if it was having problems locating the hiera
>> config but it seems to locate it ok, eg. "Debug:
>> /File[/etc/puppet/hiera.yaml]: Autorequiring File[/etc/puppet]". At least,
>> it doesn't appear to display any errors related to hiera.
>>
>> I'm really at a loss here. Any ideas?
>>
>>
>
> Are you anywhere instructing Puppet to include the classes listed in your
> hiera data in the catalog?
>
> You haven't really given us much to work with.  Generally speaking, Puppet
> and hiera work.  If they are not working for you, then the problem likely
> resides in the configuration, manifests, or data that you are feeding
> them.  If you present a simple example that is failing for you, then we can
> probably help you sort it out.
>
>
> John
>
>  --
> You received this message because you are subscribed to a topic in the
> Google Groups "Puppet Users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/puppet-users/9kdUVvrsr18/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> puppet-users+unsubscr...@googlegroups.com.
> To post to this group, send email to puppet-users@googlegroups.com.
> Visit this group at http://groups.google.com/group/puppet-users.
> For more options, visit https://groups.google.com/groups/opt_out.
>



-- 
Guy Knights
Lead Systems Administrator
<http://eastsidegamestudio.com>
www.eastsidegamestudio.com
g...@eastsidegamestudio.com

<g...@eastsidegamestudio.com>

-- 
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 puppet-users+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to