I need some sort of software that will allow me to create a few virtual machines in which I can install and run arbitrary software (e.g. nginx) and be able to run arbitrary commands (e.g. strace) in an easy way.
Ideally, the software would also allow me to simulate network traffic from other clients, and will allow me to collect statistics on the performance of each client. Something like a virtual simulations environment.
I would like this to run locally on one computer and to not consume as many resources. Preferably I would like it to run in Unix-based machines or Windows. But OSX is good too.
I don't have a lot of experience in this domain so I'm not sure exactly at what to look for. I've heard of things such as "software defined networking" and "open stack" but I'm not really sure if there's anything more simple out there.
To give an example of what I have been doing so far, I've been using VMware and creating new machines as needed (the installation and configuration process is time-consuming and would like to avoid that). To generate the statistics I've been needing I was using the ELK stack and sending information across my virtual machines. This was also very tedious.
I would prefer if the software is free or open source.