Revision history [back]

click to hide/show revision 1
initial version

Question about nested Heat templates

We have a requirement to create many different types of systems with different software and configuration requirements. (IE. On one server might have postgres and apache....on another postgres, and on another postgres and websphere). We have about 25 different types of software (postgres, apache, websphere, etc...) that we want to deploy in many different combinations.

I'm looking for a best practice in how to accomplish this. We are looking at the python-client for heat but open to API, command line or any other method. Essentially we would have a "base" template and then we would like to "add" software/configurations to the server.

As an example --create server --Add postgres --Add apache

--Create server --add postgres --add websphere

Rather then create and "hard-code" templates, is it possible to dynamically create the template or use "nested templates" so that essentially We would have a single template for each software piece --template for postgres --template for apache --template for websphere.

And we just import these into a "base" template depending on what we want to include.

Another option could be possibly a single "large" template with everything and use parameters to turn off|on the software component?

Would it also be best to use "puppet" for each of these software additions and what would be the best approach in doing this.

Essentially, I'm looking for a best practice in deploying software to VM's created via openstack with many different software components and configurations.