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.

Reply via email to