FR - provide terraform or vagrant executor for using VMs
Similar to #318 (closed), it would be really nice to have the runner support something like Terraform or Vagrant for spinning up VMs.
Reasoning
- not everyone/company are ready/wanting to use Docker.
- not everything works well or at-all in Docker (systemd for example)
Using something like Terraform or Vagrant, you would get the same benefits as docker-machine, i.e. a tool that has multiple drivers (In the case of Vagrant you'd need the relevant plugin - e.g. https://github.com/mitchellh/vagrant-aws, https://github.com/devopsgroup-io/vagrant-digitalocean) supporting different platforms. You can choose your own image, mount volumes etc. Logically this could replace the existing Virtualbox executor, which is a bit unwieldy tbh as it requires an existing image to clone and is locked to that.
I envisage something that
- generates a vagrant file, defining
- driver
- image
- custom shell provisioning (script section of .gitlab-ci.yml)
- optional volume mounts
- runs vagrant up
- runs vagrant destroy