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. 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 >> 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: >> >> class hieratest ( >> $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]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/eb1a7ae9-a75e-4acc-82a4-41eb05e103bf%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
