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


Chronological Thread 
  • From: Greg Barker < >
  • To:
  • Subject: [chef] How to override node attribute with lazy value?
  • Date: Thu, 2 Oct 2014 03:13:31 -0700

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" }

Thanks,
Greg



Archive powered by MHonArc 2.6.16.

§