I was able to track this down. Apparently $puppet_master_storedconfigs is either reserved or too long. When I changed it to $puppet_master_storedcfgs, the catalog compiled. Go figure.
On Wed, Feb 29, 2012 at 7:09 PM, Chad Huneycutt <chad.huneyc...@gmail.com> wrote: > I'm really digging hiera, but I have a problem that I just can't seem > to work out: > > I am working on a puppet module, and I have two classes: puppet::agent > and puppet::master. The layout of the classes are very similar, but > hiera can only successfully find my variables in one of them. > > $confdir/environments/development/ > hieradata/ > common.json > modules.json > modules/ > puppet/ > manifests/ > init.pp > data.pp > agent.pp > master.pp > agent/ > data.pp > master/ > data.pp > nodes/ > site.pp > > > agent.pp: > > -------------- > class puppet::agent( > $bindir = hiera('puppet_agent_bindir'), > $confdir = hiera('puppet_agent_confdir'), > $configfile = hiera('puppet_agent_configfile'), > ... > ) { > ... > } > --------------------- > > agent/data.pp > > ------------------- > class puppet::agent::data { > $puppet_agent_bindir = '/usr/bin' > $puppet_agent_confdir = '/etc/puppet' > $puppet_agent_configfile = 'puppet.conf' > ... > } > ---------------- > > When I include puppet::agent, the manifest compiles fine, finds the > default values in agent/data.pp, and all is well. The master > configuration is the same: > > > master.pp > > -------------- > class puppet::master( > $confdir = hiera('puppet_master_confdir'), > $bindir = hiera('puppet_master_bindir'), > $configfile = hiera('puppet_master_configfile'), > ... > ) { > ... > } > ----------------------- > > master/data.pp > > ---------------------- > class puppet::master::data { > $puppet_master_confdir = '/etc/puppet' > $puppet_master_bindir = '/usr/bin' > $puppet_master_configfile = 'puppet.conf' > ... > } > --------------------------- > > But when I include puppet::master, the catalog fails to compile, > because hiera cannot find the values: > > ----------------- > Could not find data item puppet_master_confdir in any Hiera data file > and no default supplied at > /etc/puppet/environments/development/modules/puppet/manifests/master.pp:71 > on node foo.bar.org > ----------------- > > When generating the catalog for the agent, I see this in the puppet output: > > ----------------- > debug: hiera(): Hiera Puppet backend starting > debug: hiera(): Looking up puppet_agent_bindir in Puppet backend > debug: hiera(): Looking for data in data::nodes/foo > debug: importing > '/etc/puppet/environments/development/modules/puppet/manifests/agent/data.pp' > in environment development > debug: importing > '/etc/puppet/environments/development/modules/puppet/manifests/data.pp' > in environment development > debug: hiera(): Looking for data in data::modules-rh > debug: hiera(): Looking for data in data::modules > debug: hiera(): Looking for data in data::common > debug: hiera(): Looking for data in puppet::agent::data > debug: hiera(): Found data in class puppet::agent::data > ------------------ > > The same section of output looks the same when compiling the master, > only the very last line is missing. Does that mean that the puppet > backend cannot parse the master/data.pp file? I've stared at it until > my eyes crossed, and I don't see anything wrong. I am going to > simplify my classes and see what I come up with, but I am pretty > baffled at this point. > > > Thanks for any help, > Chad -- Chad M. Huneycutt -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.