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


Chronological Thread 
  • From: John Dyer < >
  • To: " " < >
  • Subject: [chef] Re: Re: including erubis fragments within a template
  • Date: Thu, 28 Jun 2012 08:55:20 -0400

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

§