[Thincrust-devel] RFC: Customizing an appliance install

Bryan Kearney bkearney at redhat.com
Fri Sep 26 19:06:33 UTC 2008


I am looking for feedback on how to customize an appliance install. As 
you may be aware, the appliance configuration engine uses puppet as it's 
configuration syntax. The rational is that this is an up and coming 
standard syntax, and should be familiar to those who do sysadmin type 
work (Said another way, we don't need yet another DSL).

The trick is how to allow a user (either via the gui or the command 
line) to customize an appliance recipe. In puppet I have seen 2 ways to 
push in custom information:

1) External Nodes
2) Facter

I am thinking of using the latter, and would like to outline my 
thoughts. Please feel free to offer up alternative solutions.

Goal:

Create recipes which can externalize a small set of data which the user 
needs to provide in order to the appliance to be configured.

Implementation

A module, or a recipe can deliver one or more "external facts". They 
will be delivered in the form:

name:default_value:query_text

before the puppet engine is run, the thincrust tool can iterate over 
these facts, present them to the user, and record the answer. This can 
be stored in a file on the appliance. In essence, this is a pre-processor.

When puppet is run, a single custom fact will iterate over all the 
external facts.. and add them to facter. This will allow them to be 
accessed by all the recipes, modules, and templates.

Thoughts?

-- bk





More information about the Thincrust-devel mailing list