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?

1 Answer 1


I ended up going with Vagrant, after having learned that it can also provision the machine using shell scripts: https://www.vagrantup.com/intro/getting-started/provisioning.html

This seems like the lowest effort way to accomplish what I want with quickly setting up a temporary specific environment separate from my own, with simple text-based configuration that can be version controlled.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.