Multipass is a cross platform rapid lightweight Ubuntu VM provisioning tool from Canonical.
VM's run on the native hypervisor with a kernel optimized for that hypervisor
MacOS = Hyperkit
Windows = Hyper-V
Linux = Qemu or libvirt
VM's can be provisioned with cloud-init to make them ready to be provisioned by ansible (create users, copy ssh keys, set fixed ip's, etc) in much the same way docker build is currently being used
Why?
Removes dependency on Oracle Virtual Box
If we create a provisioning VM, it will also remove the need for a local install of ansible.
VM's consume less resources than Virtualbox and by not using an overlay filesystem, battery life when running the environment seems to be much better than docker-on-mac.
VM's can be directly access each other and can be accessed from the hosts OS without any network configuration
Next Steps
I've built a repro envionment to mimic what om_ansible deploys and have seen benefits in energy usage, and also being directly able to interact with the VM's. Some existing OM_Ansible scripts can already be deployed. I've also started work on scoping out what is needed to bring this to the current level of Vagrant support (at which point Vagrant can be depreciated). I'll create more issues for the following and more as they come up during the POC:
Create cloud-init setup to set fixed ip's and create users/keys on VM's
Create wiki instructions to install multipass, create VM's
Remove vms: true|false var and replace it with a type: docker|vagrant|multipass
What is it?
Multipass is a cross platform rapid lightweight Ubuntu VM provisioning tool from Canonical.
VM's run on the native hypervisor with a kernel optimized for that hypervisor
VM's can be provisioned with cloud-init to make them ready to be provisioned by ansible (create users, copy ssh keys, set fixed ip's, etc) in much the same way
docker build
is currently being usedWhy?
Next Steps
I've built a repro envionment to mimic what om_ansible deploys and have seen benefits in energy usage, and also being directly able to interact with the VM's. Some existing OM_Ansible scripts can already be deployed. I've also started work on scoping out what is needed to bring this to the current level of Vagrant support (at which point Vagrant can be depreciated). I'll create more issues for the following and more as they come up during the POC:
vms: true|false
var and replace it with atype: docker|vagrant|multipass