[chef] Re: including erubis fragments within a template


Chronological Thread 
  • From: Mike < >
  • To:
  • Subject: [chef] Re: including erubis fragments within a template
  • Date: Thu, 28 Jun 2012 08:42:31 -0400

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.

§