Setting up a system for testing requires getting all the dependencies installed. Not just software dependencies, but system configuration too (for example setting up iptables or starting services).
Different versions of distros have not only different dependencies, but different system configuration needs and how to even call them (for example service vs. systemctl). All these differences between distros need to be encapsulated. Also every "recipe" needs to define it's dependencies.
A database of recipes should be collected and a graph built of the dependencies. Each recipe should list:
distro
dependencies (and the version of the dependencies)
name
Benefits
This is an essential part of provisioning test machines. While you could make a simpler hard coded approach, over time the maintenance work will become too great.
Concerns
Why not use ansible? Because:
This is clojure/java
We don't need no stinkin yaml
One day, people will learn the power that code is data, and data is code.
Rationale
Setting up a system for testing requires getting all the dependencies installed. Not just software dependencies, but system configuration too (for example setting up iptables or starting services).
Different versions of distros have not only different dependencies, but different system configuration needs and how to even call them (for example service vs. systemctl). All these differences between distros need to be encapsulated. Also every "recipe" needs to define it's dependencies.
A database of recipes should be collected and a graph built of the dependencies. Each recipe should list:
Benefits
This is an essential part of provisioning test machines. While you could make a simpler hard coded approach, over time the maintenance work will become too great.
Concerns
Why not use ansible? Because:
One day, people will learn the power that code is data, and data is code.