Comment 3 for bug 1262281

Revision history for this message
Michael Chapman (michaeltchapman) wrote :

Don,

The install script has evolved in a strange way. Dan and I were using env vars to pull in data from Jenkins when we did builds because parsing yaml was difficult in bash. This then turned into the user facing script because Robert wanted something he could use to get going quickly with AIO.

I want to say now that env vars is definitely the wrong way to do things and it's mostly my fault it's like this.

If you're going to rewrite the install script it should be entirely yaml driven, which probably means using a language that isn't bash. All the lines that say things like "export external_interface="${external_interface:-eth1}" should be replaced with code that does a hiera lookup. Most of them shouldn't even be needed because they can just be in the user.%{scenario}.yaml or user.common. This then means that all parameters that are set in that script should be checked to make sure they are actually in our default set of yaml for each scenario.

IMO the install experience should be
1 Run a script that prepares the environment for use, which would mean installing git and puppet, cloning builder, and applying setup.pp. This is not parameterized at all.
2 User customizes by editing yaml OR via a Q&A script
3 Run a script that will apply config and download plugins