On 30/08/17 18:23, Justin DynamicD wrote:
Thanks for this info.

My biggest problem right now is the backend is Hiera 3, and I'm not aware of any written/usable consul backends written in Hiera_5.  It took me long enough to get this syntax working, writing a backend is well outside my wheelhouse at this time, so writing a new custom hiera_5 consul backend isn't going to happen.

Can I use Hiera_5 syntax against a Hiera 3 backend?


Yes you can the only constraint is that hiera 3 backends are only allowed in the global layer's hiera.yaml. You also get less --explain output from a hiera 3 backend than what you get from hiera 5 backends.

- henrik

On Wednesday, August 30, 2017 at 4:31:11 AM UTC-7, Henrik Lindberg wrote:

    On 30/08/17 09:32, Justin DynamicD wrote:
     > I finally was able to solve this issue on my own, so posting for
    others
     > who may have been lost:
     >
     > the hiera () syntax is _very_ sensitive, even more-so than runnning
     > hiera and the command prompt.  So while:
     >
     > hiera <server>.Services would call back all the services on a
    node from
     > the commanline,
     > hiera ($::hostname.Services) would fail, and instead you have to
    settle
     > for the "base" match of simply hiera(<server>).  once you have
    that base
     > array you can then call out hashes from there.
     >
     > There may be a way to abuse ruby to get the info a bit more
    efficiently,
     > but that's out of scope of this question.
     >

      From Puppet 4.10 and forward you have hiera 5 available. The earlier
    hiera 3 and 4 formats and APIs have been deprecated in favor of
    hiera 5,
    and the lookup CLI is favoured over the hiera CLI, and the lookup
    function favoured over the hiera, hiera_array, hiera_has (etc)
    functions.

    With hiera 5 a "hiera backend" is simply a function implemented using
    puppet 4.x function API which makes backend writing much simpler.

    The lookup function is more powerful than the older hiera calls, and
    you
    can do things like 'dot style dig' into data structures directly in the
    lookup.

    Lots of information in the documentation for hiera 5. Yu may want to
    start reading here:
    
https://docs.puppet.com/puppet/5.1/hiera_intro.html#whats-the-deal-with-hiera-5
    
<https://docs.puppet.com/puppet/5.1/hiera_intro.html#whats-the-deal-with-hiera-5>



    Best,
    - henrik


     > On Tuesday, August 29, 2017 at 5:38:33 PM UTC-7, Justin DynamicD
    wrote:
     >
     >     Quick update:
     >
     >     I found out i can run "hiera <nodename>" successfuly on the
    server
     >     as long as I link the the file to the path approrpiate to the
    hiera
     >     command (designated with a 'which').  still doesn't apear to
     >     function from within a puppet manifest, however ... so I'm more
     >     supicious of a syntax issue.
     >
     >     Also ... is hiera something we _only_ need to function on the
     >     server?  or is the server going to let the local client try to
     >     process the hiera lookup?  Basically I have no idea where I
    have to
     >     ensure hiera is running properly.
     >
     >     On Tuesday, August 29, 2017 at 4:17:46 PM UTC-7, Justin
    DynamicD wrote:
     >
     >         Hi,
     >
     >         anyone have some good concise examples on how to setup
    using a
     >         consul backend in hiera?  I've attempted with little luck
    to get
     >         this backend to work.
     >
     >         So far these are the steps I've tried:
     >
     >         1.  Imported lynxman/hiera-consul into in the Puppetfile
     >         2.  Modified puppetserver.conf "ruby-load-path" to
    include the
     >         agent libdir (and presumably pickup the
    consul_backend.rb) via:
     >
    
https://tickets.puppetlabs.com/si/jira.issueviews:issue-html/SERVER-571/SERVER-571.html
    
<https://tickets.puppetlabs.com/si/jira.issueviews:issue-html/SERVER-571/SERVER-571.html>

> <https://tickets.puppetlabs.com/si/jira.issueviews:issue-html/SERVER-571/SERVER-571.html
    
<https://tickets.puppetlabs.com/si/jira.issueviews:issue-html/SERVER-571/SERVER-571.html>>

     >         3.  Validated basic hiera yaml was working by creating a
    simple
     >         "common.yaml" and ensured variables were being picked up
    during
     >         puppet runs (this was mostly to ensure hiera as a
    subsystem was
     >         t least functioning).
     >         4.  Verified I can directly query consul with either
    consul kv,
     >         curl, and even dig.
     >
     >         With all this in place, I can't seem to get any info
    back.  For
     >         a fun test I created a truly "simply" little class:
     >
     >         |
     >         classhieratest (
     >            $getdata =hiera('%{::hostname}'),){
     >
     >            $myresult =join($getdata,",")
     >
     >            file {'/root/dump.txt':
     >         ensure=> present,
     >              content =>inline_template($myresult),
     >         }
     >
     >         }
     >         |
     >
     >
     >
     >         As you can see this does very little other than perform a
    hiera
     >         lookup (for hostname) and then dump the output into a
    file so I
     >         can see what it's gathering.
     >
     >         The file is always empty.
     >
     >         I've tried a few different variations to attempt to get data
     >         out, but I'm not certain of how.  What I'd like to
    emulate is
     >         simply:
     >
     >         consul catalog services -node=<nodename>
     >
     >         This simple command returns all the services registered to a
     >         specified node as an array.  That's basically all I'm
    trying to
     >         get back from consul via hiera so I can then use simple If
     >         "application" in $getdata".
     >
     >         Anyone have any insight on what setting I might be missing?
     >           Simple syntax issue?  consul trick?
     >
     >
     > --
     > 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:>
     > <mailto:[email protected] <javascript:>>.
     > To view this discussion on the web visit
     >
    
https://groups.google.com/d/msgid/puppet-users/eb1a7ae9-a75e-4acc-82a4-41eb05e103bf%40googlegroups.com
    
<https://groups.google.com/d/msgid/puppet-users/eb1a7ae9-a75e-4acc-82a4-41eb05e103bf%40googlegroups.com>

     >
    
<https://groups.google.com/d/msgid/puppet-users/eb1a7ae9-a75e-4acc-82a4-41eb05e103bf%40googlegroups.com?utm_medium=email&utm_source=footer
    
<https://groups.google.com/d/msgid/puppet-users/eb1a7ae9-a75e-4acc-82a4-41eb05e103bf%40googlegroups.com?utm_medium=email&utm_source=footer>>.

     > For more options, visit https://groups.google.com/d/optout
    <https://groups.google.com/d/optout>.


--
    Visit my Blog "Puppet on the Edge"
    http://puppet-on-the-edge.blogspot.se/
    <http://puppet-on-the-edge.blogspot.se/>

--
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] <mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/ce602930-a49a-4038-a032-be4d96fec8e8%40googlegroups.com <https://groups.google.com/d/msgid/puppet-users/ce602930-a49a-4038-a032-be4d96fec8e8%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.


--

Visit my Blog "Puppet on the Edge"
http://puppet-on-the-edge.blogspot.se/

--
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/oo79td%24o2q%241%40blaine.gmane.org.
For more options, visit https://groups.google.com/d/optout.

Reply via email to