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.
