Sometimes I need to reproduce issues that appear only in the customer's environment. I could manually set up virtual machines to sufficiently mirror their environment, but it would be very nice to find a semi-automated way to do this.
In other words, I'm looking for something that will let me say, "Create an environment that runs this version of Linux, has this version of PHP installed", and so on. Then I hope to be able to log in to that environment and execute the reproduction steps.
These environments would obviously be relatively short-lived, since once I've reproduced that particular issue, there's a chance I will never have to recreate the same environment again. That said, it would be nice if the environment configuration was in a format easy to version control, in case it would be needed again.
Is there a technology suited to this type of use case?
Things I have heard of that may be relevant
- Proxmox (seems overkill and insufficient on its own)
- Vagrant (could be insufficient on its own, might also need configuration management like Ansible)
- Docker (commonly used to run single applications, not recreate full OS environments)
Are any of these good fits for this use case? Should I look into other options?