• Stars
    star
    7,204
  • Rank 5,083 (Top 0.2 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 6 years ago
  • Updated 6 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Multipass orchestrates virtual Ubuntu instances

What is Multipass?

Multipass is a lightweight VM manager for Linux, Windows and macOS. It's designed for developers who want a fresh Ubuntu environment with a single command. It uses KVM on Linux, Hyper-V on Windows and QEMU on macOS to run the VM with minimal overhead. It can also use VirtualBox on Windows and macOS. Multipass will fetch images for you and keep them up to date.

Since it supports metadata for cloud-init, you can simulate a small cloud deployment on your laptop or workstation.

Project Status

Service Status
CI Build Status
Snap Build Status
Codecov Codecov Status

Install Multipass

On Linux it's available as a snap:

sudo snap install multipass

For macOS, you can download the installers from GitHub or use Homebrew:

# Note, this may require you to enter your password for some sudo operations during install
# Mac OS users may need to disable their firewall to launch a multipass instance successfully
brew install --cask multipass

On Windows, download the installer from GitHub.

Usage

Find available images

$ multipass find
Image                       Aliases           Version          Description
core                        core16            20200213         Ubuntu Core 16
core18                                        20200210         Ubuntu Core 18
16.04                       xenial            20200721         Ubuntu 16.04 LTS
18.04                       bionic,lts        20200717         Ubuntu 18.04 LTS
20.04                       focal             20200720         Ubuntu 20.04 LTS
daily:20.10                 devel,groovy      20200721         Ubuntu 20.10

Launch a fresh instance of the current Ubuntu LTS

$ multipass launch ubuntu
Launching dancing-chipmunk...
Downloading Ubuntu 18.04 LTS..........
Launched: dancing chipmunk

Check out the running instances

$ multipass list
Name                    State             IPv4             Release
dancing-chipmunk        RUNNING           10.125.174.247   Ubuntu 18.04 LTS
live-naiad              RUNNING           10.125.174.243   Ubuntu 18.04 LTS
snapcraft-asciinema     STOPPED           --               Ubuntu Snapcraft builder for Core 18

Learn more about the VM instance you just launched

$ multipass info dancing-chipmunk
Name:           dancing-chipmunk
State:          RUNNING
IPv4:           10.125.174.247
Release:        Ubuntu 18.04.1 LTS
Image hash:     19e9853d8267 (Ubuntu 18.04 LTS)
CPU(s):         1
Load:           0.97 0.30 0.10
Disk usage:     1.1G out of 4.7G
Memory usage:   85.1M out of 985.4M

Connect to a running instance

$ multipass shell dancing-chipmunk
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-42-generic x86_64)

...

Don't forget to logout (or Ctrl-D) or you may find yourself heading all the way down the Inception levels... ;)

Run commands inside an instance from outside

$ multipass exec dancing-chipmunk -- lsb_release -a
No LSB modules are available.
Distributor ID:  Ubuntu
Description:     Ubuntu 18.04.1 LTS
Release:         18.04
Codename:        bionic

Stop an instance to save resources

$ multipass stop dancing-chipmunk

Delete the instance

$ multipass delete dancing-chipmunk

It will now show up as deleted:

Name                    State             IPv4             Release
snapcraft-asciinema     STOPPED           --               Ubuntu Snapcraft builder for Core 18
dancing-chipmunk        DELETED           --               Not Available

And when you want to completely get rid of it:

$ multipass purge

Get help


multipass help
multipass help <command>

Get involved!

Here's a set of steps to build and run your own build of Multipass. Please note that the following instructions are for building Multipass for Linux only. These instructions do not support building packages for macOS or Windows systems.

Build Dependencies

cd <multipass>
apt install devscripts equivs
mk-build-deps -s sudo -i

Building

cd <multipass>
git submodule update --init --recursive
mkdir build
cd build
cmake ../
make

Running Multipass daemon and client

First, install multipass's runtime dependencies. On amd64 architecture, you can achieve that with:

sudo apt update
sudo apt install libgl1 libpng16-16 libqt6core6 libqt6gui6 \
    libqt6network6 libqt6widgets6 libxml2 libvirt0 dnsmasq-base \
    dnsmasq-utils qemu-system-x86 qemu-utils libslang2 iproute2 \
    iptables iputils-ping libatm1 libxtables12 xterm

Then run multipass's daemon:

sudo <multipass>/build/bin/multipassd &

Copy the desktop file multipass clients expect to find in your home:

mkdir -p ~/.local/share/multipass/
cp <multipass>/data/multipass.gui.autostart.desktop ~/.local/share/multipass/

Optionally, enable auto-complete in bash:

source <multipass>/completions/bash/multipass

Finally, use multipass's clients:

<multipass>/build/bin/multipass launch --name foo  # CLI client
<multipass>/build/bin/multipass.gui                # GUI client

More information

See the Multipass documentation.

More Repositories

1

microk8s

MicroK8s is a small, fast, single-package Kubernetes for datacenters and the edge.
Python
8,060
star
2

lxd

Powerful system container and virtual machine manager
Go
4,182
star
3

dqlite

Embeddable, replicated and fault tolerant SQL engine.
C
3,472
star
4

cloud-init

Official upstream for the cloud-init: cloud instance initialization
Python
2,530
star
5

snapcraft

Package, distribute, and update any app for Linux and IoT.
Python
1,128
star
6

raft

C implementation of the Raft consensus protocol
C
852
star
7

lightdm

Display Manager
C
762
star
8

vanilla-framework

From community websites to web applications, this CSS framework will help you achieve a consistent look and feel.
HTML
723
star
9

netplan

Declarative network configuration
Python
563
star
10

ubuntu-desktop-installer

Ubuntu Desktop Installer
Dart
539
star
11

subiquity

Ubuntu Server Installer, and backend for Ubuntu Desktop Installer
Python
441
star
12

go-dqlite

Go bindings for libdqlite
Go
358
star
13

pylxd

Python module for LXD
Python
252
star
14

microcloud

Automated private cloud based on LXD, Ceph and OVN
Go
241
star
15

operator

Pure Python framework for writing Juju charms
Python
238
star
16

lxd-ui

Easy and accessible container and virtual machine management. A browser interface for LXD
TypeScript
208
star
17

chisel

Go
193
star
18

packer-maas

Packer templates to create MAAS deployable images
Python
172
star
19

ubuntu.com

The official website for the Ubuntu operating system
HTML
164
star
20

microceph

Ceph for a one-rack cluster and appliances
Go
159
star
21

snapcraft.io

The official website's repository for the Snap store
JavaScript
129
star
22

pebble

Take control of your internal daemons!
Go
122
star
23

prometheus-openstack-exporter

OpenStack exporter for the prometheus monitoring system
Python
115
star
24

firmware-updater

An experimental firmware updater UI based on fwupd
Dart
104
star
25

bundle-kubeflow

Charmed Kubeflow
Python
92
star
26

dbus.dart

Native Dart client library to use DBus.
Dart
90
star
27

ubuntu-core-desktop

Makefile
88
star
28

ubuntu-image-legacy

Legacy Python-based Ubuntu image building scripts. Please see Canonical/ubuntu-image instead. Report bugs at Launchpad.
Python
85
star
29

sec-cvescan

Analyzes an Ubuntu system and checks for unpatched vulnerabilities.
Python
80
star
30

cloud-utils

This package provides a useful set of utilities for interacting with a cloud.
Shell
79
star
31

lxd-demo-server

The LXD demo server
JavaScript
74
star
32

ubuntu-image

Official tool to build Ubuntu Images.
Go
73
star
33

steam-snap

Steam as a snap
Python
66
star
34

matter-pi-gpio-commander

Matter Raspberry Pi GPIO Commander - Turn your Pi into a Matter lighting device!
C++
63
star
35

design-vanilla-framework

Design components for Vanilla Framework.
60
star
36

charmcraft

Collaborate, build and publish charmed operators for Kubernetes, Linux and Windows.
Python
58
star
37

etrace

Utility for tracing execution of apps
Go
55
star
38

multipass-blueprints

Blueprint definitions for [`multipass launch`](https://multipass.run)
54
star
39

microk8s-community-addons

The add-ons shipped with MicroK8s
Shell
53
star
40

bluez.dart

Dart
50
star
41

react-components

A set of components based on Vanilla Framework
TypeScript
50
star
42

curtin

Official mirror of curtin project
Python
50
star
43

Ubuntu-Sans-Mono-fonts

Python
49
star
44

jhack

Chock-full of Juju hackery.
Python
48
star
45

wizard_router

A classic linear wizard router for Flutter
Dart
47
star
46

ubuntu-pro-client

Ubuntu Pro Client for offerings from Canonical
Python
46
star
47

desktop_notifications.dart

Native Dart client library to send Linux desktop notifications.
Dart
44
star
48

landscape-client

The Landscape Client is the agent which communicates with the Landscape service.
Python
42
star
49

nrpe_exporter

Prometheus NRPE exporter. This exporter exposes metrics on commands sent to a running NRPE daemon.
Go
42
star
50

Ubuntu-Sans-fonts

Python
41
star
51

candid

Identity Manager Service
Go
39
star
52

ubuntu-flutter-plugins

A collection of Flutter plugins and packages for Ubuntu applications.
Dart
37
star
53

workshops

Workshops
Dart
34
star
54

maas-ui

The UI for MAAS (metal-as-a-service)
TypeScript
32
star
55

microk8s-core-addons

Core MicroK8s addons
Python
32
star
56

ubuntu-cooker

Ubuntu WSL UWP Builder
PowerShell
31
star
57

nm.dart

Native Dart client library to access NetworkManager on Linux.
Dart
29
star
58

hotsos

Software analysis toolkit. Define checks in high-level language and leverage library to perform analysis of common Cloud applications.
29
star
59

open-documentation-academy

Learn open-source software documentation skills with Canonical
29
star
60

autoinstall-generator

Utility to convert Debian Installer preseed to Subiquity answers
Python
28
star
61

autoinstall-desktop

Python
26
star
62

snapd.dart

Native Dart client to access snapd
Dart
26
star
63

microovn

Snap based deployment of OVN
Go
25
star
64

k8s-dqlite

Dqlite for Kubernetes
Go
25
star
65

kubeflow-examples

Charmed Kubeflow examples
Jupyter Notebook
25
star
66

checkbox

Checkbox
Python
24
star
67

landscape-scripts

A collection of scripts to make Landscape more powerful
Shell
23
star
68

go-tpm2

Native go library for interacting with TPM 2.0 devices
Go
22
star
69

iot-agent

IoT Device Management Agent
Go
21
star
70

dotrun

Python
21
star
71

probert

Prober tool - Hardware discovery library used in Subiquity
Python
20
star
72

microcluster

dqlite cluster management using go-dqlite
Go
19
star
73

colcon-in-container

Colcon extension to build a colcon workspace in a container
Python
18
star
74

pycloudlib

Python library to launch, interact and, snapshot cloud instances
Python
18
star
75

desktop-design

HTML
18
star
76

sync-issues-github-jira

Automation to sync issues from Github (using Github actions) to Jira (via Jira webhooks)
18
star
77

canonical.com

Repository for the new version of canonical.com
HTML
18
star
78

flutter-snap

CMake
18
star
79

udisks.dart

Native Dart client library to access UDisks service on Linux.
Dart
18
star
80

prometheus-k8s-operator

This charmed operator automates the operational procedures of running Prometheus, an open source monitoring system and alerting toolkit, on Kubernetes
Python
17
star
81

gsettings.dart

Native Dart client library to access GSettings.
Dart
17
star
82

anbox-cloud.io

Anbox cloud demo site
HTML
17
star
83

iot-management

IoT Management Service
Go
17
star
84

microk8s-addons-repo-template

Template repository for MIcroK8s addons
Python
17
star
85

rockcraft

Tool to create OCI Images using the language from Snapcraft and Charmcraft.
Python
17
star
86

maas-commissioning-scripts

A repository of example MAAS commissioning scripts
Shell
16
star
87

upower.dart

Native Dart client library to access UPower service on Linux.
Dart
16
star
88

ubuntu-desktop-hyper-v

Ubuntu Desktop Hyper-V Quick Create Gallery
Shell
16
star
89

chisel-releases

16
star
90

eks-snap

Single-package EKS Distro
Python
15
star
91

libssh

mulitplatform C library implementing the SSHv2 and SSHv1 protocol on client and server side http://libssh.org
C
15
star
92

packagekit.dart

Native Dart client library to access PackageKit.
Dart
15
star
93

charm-relation-interfaces

Opinionated and standardized interface specifications for charmed operator relations.
Python
15
star
94

ubuntu-wsl-integration

Ubuntu WSL Integrations
Python
14
star
95

microk8s.io

Code for the microk8s.io website by Canonical
HTML
14
star
96

maas.io

Site for maas.io
HTML
14
star
97

sqlair

Friendly type mapping for SQL databases
Go
14
star
98

ubuntu-cloud-docs

Public Docs for Ubuntu in the Clouds
Python
14
star
99

jaas-dashboard

The dashboard to monitor your Juju & JAAS environments.
TypeScript
14
star
100

firefox-snap

Official repository for the source used to build the firefox snap (published by Mozilla)
Shell
14
star