[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:39:55 -0400

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.

§