FAQ
This may be a dumb question, but here goes


So I'm running on Puppet 3.1.1 on RHEL5, and i've been using Hiera since 2.5/2.6 ish and it's been great!! I was reading up on Automatic Parameter Lookups and would love to use it for my modules. But I can't seem to ever get Hiera/Puppet to load the value i've set in my yaml files. I feel like I must be missing something.


I've worked my way through the docs, and am just not sure what I'm missing. I decided to use the 2.7 example, just to see what it did and noticed that this

$puppetservertest = hiera('puppet::puppetservertest', 'test'),


Doesn't work,

but this

$puppetservertest = hiera('puppetservertest', 'test'),

Does!

I'm working on my puppet module, so I was expecting the lookup to grab the variable from my puppet.yaml file (which it does in the second example)

My test puppet.yaml file is pretty simple, it looks like this


# Parameters for Puppet Class
---
puppetservertest: - 'puppet.example.com'


If anyone can shed some light on this it would be awesome!

Thanks

-a

--
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.

Search Discussions

  • Brian Lalor at Apr 18, 2013 at 8:43 pm
    When you use the hiera() function, you ate by definition not doing automatic param lookup. :-) whatever you put in for the first argument is the key that will be looked up via hiera verbatim. If you leave the class parameter without a default and instantiate it without a value, puppet will prefix the name of the class to the param name with double colons and use that as the lookup key in hiera.

    --
    Brian Lalor
    [email protected]
    On Apr 18, 2013, at 4:15 PM, Alaric wrote:

    This may be a dumb question, but here goes


    So I'm running on Puppet 3.1.1 on RHEL5, and i've been using Hiera since 2.5/2.6 ish and it's been great!! I was reading up on Automatic Parameter Lookups and would love to use it for my modules. But I can't seem to ever get Hiera/Puppet to load the value i've set in my yaml files. I feel like I must be missing something.


    I've worked my way through the docs, and am just not sure what I'm missing. I decided to use the 2.7 example, just to see what it did and noticed that this

    $puppetservertest = hiera('puppet::puppetservertest', 'test'),


    Doesn't work,

    but this

    $puppetservertest = hiera('puppetservertest', 'test'),

    Does!

    I'm working on my puppet module, so I was expecting the lookup to grab the variable from my puppet.yaml file (which it does in the second example)

    My test puppet.yaml file is pretty simple, it looks like this


    # Parameters for Puppet Class
    ---
    puppetservertest: - 'puppet.example.com'


    If anyone can shed some light on this it would be awesome!

    Thanks

    -a

    --
    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.
  • Jcbollinger at Apr 19, 2013 at 1:35 pm

    On Thursday, April 18, 2013 3:42:32 PM UTC-5, blalor wrote:
    When you use the hiera() function, you ate by definition not doing
    automatic param lookup. :-) whatever you put in for the first argument is
    the key that will be looked up via hiera verbatim. If you leave the class
    parameter without a default and instantiate it without a value, puppet will
    prefix the name of the class to the param name with double colons and use
    that as the lookup key in hiera.
    So, yes, the main issue here is that the keys in your hiera data files must
    match the ones by which Puppet attempts to look up the data. The keys are
    opaque to hiera, and the context of each lookup nearly so. If you want to
    lookup key 'puppet::puppetservertest' then that key must appear in the data
    -- it is a different key from 'puppetservertest', regardless of where the
    hiera() call appears.

    Moreover, I wanted to point out that, contrary to Brian's implication,
    automated class parameter binding is independent of whether parameters have
    explicit default values. If you do not bind a parameter's value via a
    class's declaration (and you shouldn't) then Puppet attempts to look up a
    value for it via hiera, regardless of whether an explicit default value is
    declared by the class. Only if the hiera lookup fails is an explicit
    default used.


    John

    --
    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.
  • Brian Lalor at Apr 19, 2013 at 1:49 pm

    On Apr 19, 2013, at 9:34 AM, jcbollinger wrote:

    Moreover, I wanted to point out that, contrary to Brian's implication, automated class parameter binding is independent of whether parameters have explicit default values. If you do not bind a parameter's value via a class's declaration (and you shouldn't) then Puppet attempts to look up a value for it via hiera, regardless of whether an explicit default value is declared by the class. Only if the hiera lookup fails is an explicit default used.

    That's kind of cool.

    class foo (
    $bar => hiera('baz', 'bap'),
    ) { }

    So $bar will be set to "bap" only if foo::bar and baz are not found in Hiera, in that order?

    --
    Brian Lalor
    [email protected]


    --
    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.
  • Jcbollinger at Apr 22, 2013 at 1:59 pm

    On Friday, April 19, 2013 8:49:14 AM UTC-5, blalor wrote:
    On Apr 19, 2013, at 9:34 AM, jcbollinger wrote:

    Moreover, I wanted to point out that, contrary to Brian's implication,
    automated class parameter binding is independent of whether parameters have
    explicit default values. If you do not bind a parameter's value via a
    class's declaration (and you shouldn't) then Puppet attempts to look up a
    value for it via hiera, regardless of whether an explicit default value is
    declared by the class. Only if the hiera lookup fails is an explicit
    default used.


    That's kind of cool.

    class foo (
    $bar => hiera('baz', 'bap'),
    ) { }

    So $bar will be set to "bap" only if foo::bar and baz are not found in
    Hiera, in that order?
    I had to study that for a minute to see what you meant, but yes, that is
    correct for Puppet 3. Puppet 2 will differ. Puppet 3 may perform both
    lookups even when foo::bar is found, however, even though in that case it
    doesn't use the result of the 'baz' lookup. That could be significant
    under some circumstances, such as when using an Hiera back-end that is
    expensive to call.


    John

    --
    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.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppuppet-users @
categoriespuppet
postedApr 18, '13 at 8:15p
activeApr 22, '13 at 1:59p
posts5
users3
websitepuppetlabs.com

People

Translate

site design / logo © 2023 Grokbase