[chef] Re: How to override node attribute with lazy value?


Chronological Thread 
  • From: Noah Kantrowitz < >
  • To:
  • Subject: [chef] Re: How to override node attribute with lazy value?
  • Date: Thu, 2 Oct 2014 07:55:54 -0700


On Oct 2, 2014, at 3:13 AM, Greg Barker 
< >
 wrote:

> The chef-server readme shows how to override nginx attributes. However, it 
> doesn't seem to work like I want it to when I do:
> 
> node.override["chef-server"]["configuration"]["nginx"]["ssl_certificate"] = 
> "/etc/pki/tls/certs/#{node[:fqdn]}.pem"
> 
> node[:fqdn] is being updated during my chef run using the hostname 
> cookbook, and so using the above results in an error because chef-server 
> ends up looking for /etc/pki/tls/certs/localhost.pem (the old hostname), 
> when it should instead be using /etc/pki/tls/certs/mynode.mycompany.com.pem.
> 
> So I think I want something like the following, but this doesn't work. 
> What's the right way to do it?
> 
> node.override["chef-server"]["configuration"]["nginx"]["ssl_certificate"] = 
> lazy { "/etc/pki/tls/certs/#{node[:fqdn]}.pem" }

lazy{} is a feature of resources, not of node attributes. See 
https://coderanger.net/derived-attributes/  for more information about how to ;
handle delayed interpolation in node attributes.

--Noah

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail




Archive powered by MHonArc 2.6.16.

§