- 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.