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?

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
>  
>
>
> 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>
>  
>
> >         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?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/ce602930-a49a-4038-a032-be4d96fec8e8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to