JSON Role files, attributes, and variable interpolation


#1

I use JSON based role files and for better or worse use them often for
attribute definition.

I have recently tried to perform variable interpolation like this

"default_attributes": {
    "foo": {
        "server": "extra.#{node['fqdn']}"
      }

I was not surprised that this DID NOT work and that I got
’extra.#{node[‘fqdn’]}’ rather than an interpolated string.

Is there any way to interpolate in JSON role files?

Thanks


#2

No, nor would this work in the ruby format. Role data must be purely static. You can do things like this in cookbooks though. --Noah

On December 30, 2014 at 10:41:15 AM PST, Mark Selby mselby@thenextbigsound.com wrote:I use JSON based role files and for better or worse use them often for attribute definition. I have recently tried to perform variable interpolation like this “default_attributes”: { “foo”: { “server”: “extra.#{node[‘fqdn’]}” } I was not surprised that this DID NOT work and that I got ‘extra.#{node[‘fqdn’]}’ rather than an interpolated string. Is there any way to interpolate in JSON role files? Thanks


#3

Thanks for the response

I do this already extensively in cookbooks and was hoping that I could
extend to roles – but such be life.

On Tue, Dec 30, 2014 at 11:07 AM, Noah Kantrowitz noah@coderanger.net
wrote:

No, nor would this work in the ruby format. Role data must be purely
static. You can do things like this in cookbooks though.

–Noah

On December 30, 2014 at 10:41:15 AM PST, Mark Selby <
mselby@thenextbigsound.com> wrote:

I use JSON based role files and for better or worse use them often for
attribute definition.

I have recently tried to perform variable interpolation like this

"default_attributes": {
    "foo": {
        "server": "extra.#{node['fqdn']}"
      }

I was not surprised that this DID NOT work and that I got
’extra.#{node[‘fqdn’]}’ rather than an interpolated string.

Is there any way to interpolate in JSON role files?

Thanks