[chef] including erubis fragments within a template


Chronological Thread 
  • From: Bryan Berry < >
  • To:
  • Subject: [chef] including erubis fragments within a template
  • Date: Thu, 28 Jun 2012 14:32:06 +0200

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.

§