[chef] Re: Can chef parse the attribute list and handle it while creating templates


Chronological Thread 
  • From: Faiz Kazi < >
  • To:
  • Subject: [chef] Re: Can chef parse the attribute list and handle it while creating templates
  • Date: Wed, 15 May 2013 10:33:53 +0900

If your attribute value is actually a list:

default['zabbix']['agent']['servers_active'] = [ "hostname1", "hostname2" ]

Then in your template, you could just render it's elements separated by a 
comma:

ServerActive=<%= node.zabbix.agent.servers_active.join(",") %>


If you want to have it both ways - perhaps you have some legacy roles that
still insist on single values and not lists:

# just a single value, not passed as a list
default['zabbix']['agent']['servers_active'] = "hostname"

# several values passed as a list
default['zabbix']['agent']['servers_active'] = [ "hostname1", "hostname2" ]


Then in your template, to treat whatever is passed as a list:

ServerActive=<%= [node.zabbix.agent.servers_active].join(",") %>


HTH.



On 05/15/2013 01:19 AM, 

 wrote:
Hi All,


I have an attribute which I must pass as list and update it in the template
file But it seems the attributes are taken as literal string during chef-run.
Is there a way to pass a list and handle it in templates  ?



default['zabbix']['agent']['servers_active'] = "hostname"


default['zabbix']['agent']['servers_active'] = "[ "hostname1", "hostname2" ]"

Template where this list need to
ServerActive=<%= node.zabbix.agent.server_active %>
Desired Output
ServerActive=hostname1,hostname2

thanks for your response in advance!
Tarun




Archive powered by MHonArc 2.6.16.

§