I have a server which is meant to test multiple deployment scenarios all driven by packages installed over RPMs.
Is there a way to abstract the RPMs in a system so that i can switch rpm context? For example:
postrgre -> postegresql 3.x , java -> sun jdk 5.x hadoop version -> 1.X python version -> 3.0
psql = postgresql 2.x java -> sun jdk hadoop version -> 2.X python version -> 2.7
So clearly, what is needed is;
- Some perfect snapshot of system state before installing RPMs.
- Some way to create Test environment A from RPMs
- A way to roll back to (1) after running Test A
- Some way to create Test environment B from RPMs
- A way to again roll back to (1) to start the system over.
One option is virtualization, however this environment needs to run on real hardware. Another option is raw shell scripts - but this doesn't guarantee universal recovery of raw, pure system state.