The ambit of IT, software development, operations or similar tends to be full of people that likes to try new trends or tools related directly with their day to day tasks or just out of curiosity. One quick way of doing this, it is to install all the tools and libraries in our machines and, after we have finished, try to clean everything or, at least, revert all the mistakes or, not very good practices we did when learning. Despite this been a valid way, overtime, our machines get polluted will lost dependencies, configuration files or libraries.
To avoid that, it seems a better way to try all the new stuff on an isolated environment and, if we like it and we decide do use it in our daily environments, to install it from scratch again probably correcting some initial mistakes or avoiding some bad practices.
There are plenty of solutions out there to achieve this and, to have an easy to set up throw-away environment. Most of them based on virtual machines or some kind of virtualisation. More traditional ones such as VirtualBox or VMWare or, some based on management solutions for virtual machines such as Vagrant.
Today, I just want to bring to the table a different one I have been playing with lately and, I did not know a few months ago. I do not know how popular is it or how extended it is but, I think that knowing different options it is always a plus. The tool is called Multipass. And, as Ubuntu describes it, it is “Ubuntu VMs on demand for any workstation. Multipass can launch and run virtual machines and configure them with cloud-init like a public cloud. Prototype your cloud launches locally for free.”
I have found it very easy to use and, for the purposes of having trow-away isolated environments laying around, quite useful.
We are going to see the install process and, the basic execution of a few commands related with an instance.
Before we start applying the steps to install Multipass on our machines, there are a couple of requirement we need to consider. They are related with the platform is going to be used to virtualise the images. In new operative systems, no extra requirements are needed but, some old ones have them. Check on the official documentation.
sudo snap install multipass
Just download the installer from the web page and proceed with the suggested steps.
MacOS offers us two different alternatives. One based on an installation file similar to Windows and, one based on a package manager solution like Homebrew. If installing using the installation file, just execute it and follow the suggested steps and, if installing using Homebrew just execute the appropriate command (here):
brew install --cask multipass
Once the installation is done, any other command executed should be the same in all three environments.
Just as a side note, there is the possibility of using VirtualBox as a virtualisation platform if we desire it but, this is completely optional and depends only on our preferences. I am not using it. The command to install it can be found below but, I encourage you to go to the official documentation on this specific point.
Now we have finished the installation, let’s create our first instance.
Creating and using an instance
Let’s check what images are available:
We can see there are multiple images available but, in this case, we are going to create an instance using the latest version (20.10). By default, if not image is specified, multipass uses the las LTS version.
It is worth it to mention that, by default, multipass assign some values to our instance in terms of CPU, disk, memory and, others.
As we can see it is quite fast and, if we create a second image, it will be even faster.
We can execute a command inside the instance:
Or, we can just login into the instance:
From now on, we can just work with this instance as we please.
There are a few commands we can use to manage our instances such as instances running, available instances or information about running instances. All these command are available on the help menu.
Mounting a shared folder
Multipass offers the possibility of mounting folders to share information between the host and the instance using the command mount.
Cleaning (Deleting an instance)
Finally, as we do not want to leave throw-away instances laying around, after we have finished working, we can remove it.
This is just a brief introduction to multipass. More complex scenarios can be found on the official documentation.