2

I'm trying to figure out Puppet (3.0) and how it relates to built-in Hiera. So this is what I tried, an extremely simple example (I'll make a more complex hierarchy when I manage to get the simple one working):

# /etc/puppet/hiera.yaml
:backends:
  - yaml
:hierarchy:
  - common
:yaml:
  :datadir: /etc/puppet/hieradata

# /etc/puppet/hieradata/common.yaml
test::param: value

# /etc/puppet/modules/test/manifests/init.pp
class test ($param) { notice($param) }

# /etc/puppet/manifests/site.pp
include test

If I directly apply it, it's fine:

$ puppet apply /etc/puppet/manifests/site.pp
Scope(Class[Test]): value

If I go through puppet master, it's not fine:

$ puppet agent --test
Could not retrieve catalog from remote server: Error 400 on SERVER: Must pass param to Class[Test] at /etc/puppet/manifests/site.pp:1 on node <nodename>

What am I missing?

EDIT:

I just left the office but a thought struck me: I should probably restart puppet master so it can see the new hiera.conf. I'll try that on Monday; in the meantime, if anyone figures out some not-it problem, I'd appreciate it :)

1

2 Answers 2

1

I am an idiot, and the edit in the question was correct: after restarting puppet master, everything worked fine.

0

For Hiera ( /etc/puppet/environments/local/hieradata/hostgroups/base/yourhostname/all.yaml )


mySuperVariable: lalala

For Init ( /etc/puppet/environments/local/manifests/yourhostname/manifest )

class mimir::init { $myvariable = hiera('mySuperVariable', 'fallbackValue') }

For Template ( /etc/puppet/environments/local/manifests/yourhostname/templates )

whatever ... <%= myvariable%> blahblah

1
  • If it wasn't clear, I was trying to figure out the implicit lookup, without using the hiera function. Also, the title explicitly mentions classes, and implicitly modules.
    – Amadan
    Nov 10, 2012 at 6:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .