[chef] Re: Re: Re: including erubis fragments within a template


Chronological Thread 
  • From: Ranjib Dey < >
  • To:
  • Subject: [chef] Re: Re: Re: including erubis fragments within a template
  • Date: Thu, 28 Jun 2012 22:30:58 +0800

+1 for partials. It will make handling config files for those tools which does not have a include dir=/etc/xxx/*.cfg , lot simpler.

On Thu, Jun 28, 2012 at 8:55 PM, John Dyer < " target="_blank"> > wrote:
"Partials" would be kind of a nice addition to chef ... IMHO

-john

On Jun 28, 2012, at 8:42 AM, Mike < "> > wrote:

> Now that I re-read your email, I see the concept of embedded template
> within a template.
> That makes it more complex.
> I don't know about that one yet.
>
> On Thu, Jun 28, 2012 at 8:39 AM, Mike < "> > wrote:
>> Hi Bryan,
>>
>> Here's a segment of a configuration file that uses 'if' statements:
>> https://github.com/DataDog/cookbooks/blob/master/datadog/templates/default/datadog.conf.erb#L21-53
>> (Do as I say, not as I do: the node attribute accessors should
>> probably be strings vs symbols, but that's a future improvement).
>>
>> My template is referencing directly against node attributes, you may
>> with to pass variables to the template resource for config items that
>> aren't exactly node attributes.
>>
>> More on templates: http://wiki.opscode.com/display/chef/Templates
>>
>> Best,
>> -M
>>
>> On Thu, Jun 28, 2012 at 8:32 AM, Bryan Berry < "> > wrote:
>>> Dear Chefs,
>>>
>>> I work on almost basis with the Enterprise Java container known as JBoss AS
>>> 7. JBoss's main configuration file, standalone-full.xml,  is a whopping 553
>>> lines long. While it is very long, it actually quite cleanly structured,
>>> especially when compared to something like sendmail.cf
>>>
>>> Templating such a large file is a mega PITA. JBoss AS 7 is nicely
>>> componentized so that you can easily turn on and off modules. This process
>>> would be a billion times easier and more readable if I could include
>>> fragments within and erubis template like this:
>>>
>>> <?xml version='1.0' encoding='UTF-8'?>
>>>
>>> <server xmlns="urn:jboss:domain:1.2">
>>>     <extensions>
>>>          <% if @infinispan -%>
>>>         <extension module="org.jboss.as.clustering.infinispan"/>
>>>         <% end -%>
>>>         <extension module="org.jboss.as.web"/>
>>>          <% if @webservices -%>
>>>         <extension module="org.jboss.as.webservices"/>
>>>         <% end -%>
>>>         <extension module="org.jboss.as.weld"/>
>>>     </extensions>
>>>      <% if @infinispan
>>>                include_template "infinispan.xml.erb"
>>>      end -%>
>>>      <% if @webservices
>>>                include_template "webservices.xml.erb"
>>>      end -%>
>>>    <socket-binding-group name="standard-sockets" >
>>>     ......
>>>    </socket-binding-group>
>>> </server>
>>>
>>> As you can see, this is far more readable than adding complex logic to
>>> already large file
>>>
>>> Is this at all feasible currently in Chef? It would make life a lot easier
>>> for me




Archive powered by MHonArc 2.6.16.

§