DEV Community

AdityaPratapBhuyan
AdityaPratapBhuyan

Posted on

A Comprehensive Guide to Multipass: Simplifying Virtual Machine Management

Virtual
We now manage and deploy computing resources in completely new ways thanks to virtualization. The ability to create and manage virtual machines (VMs) is essential for anyone interested in technology, whether they are programmers, system administrators, or just tech enthusiasts. A simple method for creating and managing virtual machines on your local machine is offered by Multipass, an open-source program created by Canonical. In-depth coverage of Multipass' installation, use, and numerous advanced features will be provided in this comprehensive guide.

Table of Contents

Introduction to Multipass

  • What is Multipass?
  • Why use Multipass? # Installation
  • Installing Multipass
  • Supported Platforms # Creating Your First VM
  • Launching a VM
  • Choosing an OS Image
  • Basic VM Operations (Start, Stop, Delete) # Working with VMs
  • Accessing the VM
  • Transferring Files
  • ** Inspecting VM Information**
  • Copying and Pasting Text # Configuring VMs
  • Changing VM Resources
  • Adding Storage
  • Configuring Networking # Managing Multiple VMs
  • Creating Multiple VMs
  • Listing VMs
  • Deleting VMs # Customizing VMs
  • Installing Software
  • Running Scripts
  • Configuring SSH Keys # Snapshots and Cloning
  • Taking Snapshots
  • Cloning VMs from Snapshots
  • Restoring from Snapshots # Integration with Cloud Services
  • Connecting to Cloud Services
  • Cloud-init Support # Troubleshooting and Tips
  • Common Issues
  • Useful Tips and Tricks # Advanced Usage
  • Building Custom Images
  • Managing Multipass Instances Remotely
  • Multipass Plugins # Conclusion
  • Recap and Final Thoughts

1. Introduction to Multipass

What is Multipass?

An easy-to-use, cross-platform command-line tool called Multipass makes it possible for you to set up and control Linux virtual machines on your local system. Multipass, created by Canonical, the organization responsible for Ubuntu, makes use of cloud-init, cloud images, and snap packages to offer a seamless environment for running and testing applications in isolated environments.

Why use Multipass?

Multipass offers several advantages for developers, system administrators, and anyone who needs to work with virtual machines:
Simplicity: Multipass is designed to be user-friendly and straightforward, making it an excellent choice for those new to virtualization.
Resource Efficiency: VMs created with Multipass are lightweight and consume minimal system resources, making them ideal for development and testing purposes.
Cross-Platform: Multipass supports Windows, macOS, and various Linux distributions, ensuring compatibility with a wide range of systems.
Cloud Integration: Multipass seamlessly integrates with cloud services, allowing you to bridge the gap between local development and cloud deployment.
Isolation: Each VM is isolated from your host system, providing a safe environment for experimentation without affecting your local machine.

2. Installation

Installing Multipass

Before you can start using Multipass, you need to install it on your system. Here are the steps for installing Multipass on different platforms:
Linux (Ubuntu/Debian):



sudo snap install multipass --classic


Enter fullscreen mode Exit fullscreen mode

Linux (Other Distributions):



# Install snapd first if not already installed
sudo apt update
sudo apt install snapd
sudo snap install multipass --classic


Enter fullscreen mode Exit fullscreen mode

macOS:
Download the macOS installer from the Multipass website and follow the installation instructions.

Windows:
Download the Windows installer from the Multipass website and follow the installation instructions.

Supported Platforms
Multipass supports a wide range of host operating systems, including:

  • Linux (various distributions)
  • macOS
  • Windows

Ensure that your system meets the minimum requirements for running Multipass, such as having sufficient RAM and disk space available.

3. Creating Your First VM

Launching a VM
To create your first VM with Multipass, open your terminal or command prompt and run the following command:



multipass launch


Enter fullscreen mode Exit fullscreen mode

This command will create a VM with default settings and a random name, using the latest Ubuntu LTS (Long Term Support) release as the base image.

Choosing an OS Image
You can specify a different OS image when creating a VM. For example, to create a VM with Ubuntu 20.04:



multipass launch ubuntu:20.04


Enter fullscreen mode Exit fullscreen mode

Multipass offers various images, including different Ubuntu versions and other Linux distributions. You can also use custom images if needed.

Basic VM Operations
Once your VM is created, you can perform basic operations using Multipass:
*Starting a VM: * To start a VM, use the start command. Replace with the name of your VM.



multipass start <vm-name>


Enter fullscreen mode Exit fullscreen mode

Stopping a VM: To stop a running VM, use the stop command.



multipass stop <vm-name>


Enter fullscreen mode Exit fullscreen mode

Deleting a VM: To delete a VM, use the delete command. Be cautious as this action is irreversible.



multipass delete <vm-name>


Enter fullscreen mode Exit fullscreen mode

4. Working with VMs

Accessing the VM
You can access the terminal of your VM using the exec command. Replace with your VM's name:



multipass exec <vm-name> -- /bin/bash


Enter fullscreen mode Exit fullscreen mode

This command opens a shell session within the VM, allowing you to interact with it.
Transferring Files
You can transfer files between your host system and the VM using the transfer command. For example, to copy a file from your local machine to the VM:



multipass transfer /path/to/local/file <vm-name>:/path/in/vm


Enter fullscreen mode Exit fullscreen mode

To copy a file from the VM to your local machine:



multipass transfer <vm-name>:/path/in/vm /path/to/local/directory


Enter fullscreen mode Exit fullscreen mode

Inspecting VM Information
To view information about your VM, including its IP address and available resources, use the info command:



multipass info <vm-name>


Enter fullscreen mode Exit fullscreen mode

Copying and Pasting Text
Multipass allows you to copy and paste text between your host machine and the VM. You can copy text from your host machine's clipboard and paste it into the VM's terminal, and vice versa.

5. Configuring VMs

Changing VM Resources
You can adjust the resources allocated to a VM, such as CPU cores and memory, using the set command. For example, to allocate 2 CPU cores and 4 GB of RAM to your VM:



multipass set <vm-name> --cpus 2 --mem 4G


Enter fullscreen mode Exit fullscreen mode

Adding Storage
Multipass allows you to add additional storage to your VMs using the storage command. This can be useful for expanding the available disk space when needed.

Configuring Networking
Multipass provides various networking options to configure how your VM interacts with the host system and the external network. You can specify custom network configurations or use the default settings.

6. Managing Multiple VMs

Creating Multiple VMs
You can create multiple VMs with different configurations. Simply specify a unique name for each VM during the creation process:



multipass launch --name vm1
multipass launch --name vm2


Enter fullscreen mode Exit fullscreen mode

Listing VMs
To list all the VMs you've created, use the list command:



multipass list


Enter fullscreen mode Exit fullscreen mode

Deleting VMs
When you no longer need a VM, you can delete it to free up resources:



multipass delete <vm-name>


Enter fullscreen mode Exit fullscreen mode

7. Customizing VMs

Installing Software
You can install software packages in your VMs using standard package managers like apt or yum. For example, to install nginx on an Ubuntu-based VM:



multipass exec <vm-name> -- sudo apt-get install nginx


Enter fullscreen mode Exit fullscreen mode

Running Scripts
You can execute scripts within your VM to automate tasks. Create a script on your local machine and use multipass transfer to copy it to the VM. Then, use multipass exec to run the script in the VM.

Configuring SSH Keys
To enhance security, you can configure SSH keys for secure remote access to your VMs. Generate SSH keys on your local machine and transfer the public key to the VM. Then, you can SSH into the VM using your private key.

8. Snapshots and Cloning

Taking Snapshots
Multipass allows you to take snapshots of your VMs at specific points in time. Snapshots capture the VM's state, including its file system, memory, and running processes. To create a snapshot:



multipass snapshot <vm-name> snapshot-name


Enter fullscreen mode Exit fullscreen mode

Cloning VMs from Snapshots
You can create new VMs by cloning existing snapshots. This is useful for quickly reproducing VMs with specific configurations and software installed:



multipass launch --name new-vm-name --snapshot snapshot-name


Enter fullscreen mode Exit fullscreen mode

Restoring from Snapshots
To restore a VM to a previous snapshot, stop the VM and use the restore command:



multipass stop <vm-name>
multipass restore <vm-name> snapshot-name
multipass start <vm-name>

Enter fullscreen mode Exit fullscreen mode



  1. Integration with Cloud Services

Connecting to Cloud Services
Multipass can be integrated with cloud services such as AWS, Azure, and GCP. This allows you to seamlessly move workloads between your local environment and the cloud.

Cloud-init Support
Multipass supports cloud-init, a widely-used cloud initialization tool. You can provide cloud-init configuration to your VMs to automate various tasks during initialization.

10. Troubleshooting and Tips

Common Issues
If you encounter any issues while using Multipass, consult the official documentation and community resources for troubleshooting guidance.

Useful Tips and Tricks
Regularly update Multipass to benefit from the latest features and bug fixes.
Use snapshots to create checkpoints before making significant changes to your VM.
Keep track of the resources allocated to your VMs to avoid performance issues.

11. Advanced Usage

Building Custom Images
Advanced users can create custom images tailored to their specific needs. This involves creating a base image, installing software, and configuring settings, then using Multipass to launch VMs based on the custom image.

Managing Multipass Instances Remotely
You can manage Multipass instances on remote servers using SSH. This enables you to control VMs on other machines from your local terminal.

Multipass Plugins
Explore available Multipass plugins to extend its functionality and integrate with additional cloud services or tools.

12. Conclusion

From installation to advanced usage, we have covered everything you need to know about Multipass in this extensive guide. Whether you are a developer looking to test software or a system administrator working with intricate configurations, Multipass is a strong and adaptable tool for managing virtual machines.Your virtualization workflow can be streamlined and your productivity increased with Multipass. Cheers to virtualization!

Top comments (1)

Collapse
 
unicornboat profile image
Unicorn Boat

multipass launch does not have an argument '--snapshot'