multipass
A set of tasks to manage Multipass VM
multipass template details
- Status: beta
- File: https://gitlab.com/op_so/task/task-templates/-/raw/main/Taskfile.d/multipass.yml
- Home: https://gitlab.com/op_so/task/task-templates
- License: MIT
List of tasks
| Tasks | Description |
|---|---|
multipass:create-from-config |
Create instances from a config file. Arguments: [CONFIG|C={{.DEFAULT_CONFIG_PATH}}] (*) |
multipass:create-instance |
Create an instance. Arguments: NAME|N=instance_name [U_USER|U=ubuntu] [CPU|C=1] [MEM|M=1G] [DISK|D=5G] [IMG|I=jammy] (*) |
multipass:delete |
Delete instances. Arguments: [NAME|N=instance_name] [CONFIG|C={{.DEFAULT_CONFIG_PATH}}] [FORCE|F=y|Y] (*) |
multipass:list |
List instances of the config file. Arguments: [CONFIG|C={{.DEFAULT_CONFIG_PATH}}] (*) |
multipass:mount |
Mount a local directory inside an instance. Arguments: HOST|H=docker [SOURCE|S= |
multipass:mount-all |
Mount all local directories declared in the multipass config file. Arguments: [HOST|H=docker] [CONFIG|C={{.DEFAULT_CONFIG_PATH}}] (*) |
multipass:reset |
Restart multipass daemon and kill all hyperkit instances |
multipass:ssh |
ssh connection. Arguments: NAME|N=docker [U_USER|U=ubuntu] (*) |
multipass:start |
Start instances. Arguments: [NAME|N=instance_name] [CONFIG|C={{.DEFAULT_CONFIG_PATH}}] (*) |
multipass:stop |
Stop instances. Arguments: [NAME|N=instance_name] [CONFIG|C={{.DEFAULT_CONFIG_PATH}}] (*) |
multipass:umount |
Unmount a directory from an instance. Arguments: HOST|H=docker [SOURCE|S= |
multipass:umount-all |
Unmount all directories from an instance. Arguments: HOST|H=docker (*) |
global variables
| Variables | Description | Default value |
|---|---|---|
DEFAULT_CONFIG |
- | `--- |
| instances: | ||
| - name: {{.DEFAULT_NAME}} | ||
| user: {{.DEFAULT_UUSER}} | ||
| image: {{.DEFAULT_IMG}} | ||
| cpu: {{.DEFAULT_CPU}} | ||
| mem: {{.DEFAULT_MEM}} | ||
| disk: {{.DEFAULT_DISK}} | ||
| mounts: | ||
| - /users/my_home_dir | ||
| metadata: | ||
| - metadata1: "my metadata" | ||
| ` | ||
DEFAULT_CONFIG_PATH |
Default configuration file relative path | {{.DIR_CONFIG}}/multipass.yml |
DEFAULT_CPU |
Instance default CPU | - |
DEFAULT_DISK |
Instance default disk size | 5G |
DEFAULT_IMG |
Instance default image | lts |
DEFAULT_MEM |
Instance default memory size | 1G |
DEFAULT_NAME |
Default Multipass instance name | multipass-default |
DEFAULT_UUSER |
Instance default username | ubuntu |
DIR_CONFIG |
Configuration directory relative path | config |
DIR_SSH |
ssh key directory relative path | .ssh |
multipass:create-from-config
Create instances from a config file. Arguments: [CONFIG|C={{.DEFAULT_CONFIG_PATH}}] (*)
[MULTIPASS] Create instances from a config file.
A default multipass.yml file is created, if it does not exist.
Usage: task multipass:create-from-config [CONFIG|C={{.DEFAULT_CONFIG_PATH}}]
| Arguments | Description |
|---|---|
CONFIG | C |
Config file path (optional, by default {{.DEFAULT_CONFIG_PATH}}) |
Requirements:
- None
multipass:create-instance
Create an instance. Arguments: NAME|N=instance_name [U_USER|U=ubuntu] [CPU|C=1] [MEM|M=1G] [DISK|D=5G] [IMG|I=jammy] (*)
[MULTIPASS] Create an instance.
A key pair k-<instance_name>-1.pem is generated for every instance in {{.DIR_SSH}}/ directory.
A default cloud-init file will be used except if a file named cloud-init-<instance_name>.yml
exists in the {{.DIR_CONFIG}}/ directory.
Usage: task multipass:create-instance NAME|N=<instance_name> [U_USER|U=ubuntu] [CPU|C=1] [MEM|M=1G] [DISK|D=5G] [IMG|I=jammy]
| Arguments | Description |
|---|---|
NAME | N |
Name for the instance (required) |
U_USER | U |
Username (optional, by default {{.DEFAULT_UUSER}}) |
CPU | C |
Number of CPUs to allocate (optional, by default {{.DEFAULT_CPU}}) |
MEM | M |
Amount of memory to allocate (optional, by default {{.DEFAULT_MEM}}) |
DISK | D |
Disk space to allocate (optional, by default {{.DEFAULT_DISK}}) |
IMG | I |
Image to launch (optional, by default {{.DEFAULT_IMG}}) |
Requirements:
- None
multipass:delete
Delete instances. Arguments: [NAME|N=instance_name] [CONFIG|C={{.DEFAULT_CONFIG_PATH}}] [FORCE|F=y|Y] (*)
[MULTIPASS] Delete an instance by its name or delete all instances of the config file if NAME is not set.
The deleted instances are purged, the other deleted instances of the host are left untouched.
Usage: task multipass:delete [NAME|N=instance_name] [CONFIG|C={{.DEFAULT_CONFIG_PATH}}] [FORCE|F=y|Y]
| Arguments | Description |
|---|---|
NAME | N |
Name for the instance (optional) |
CONFIG | C |
Config file path (optional, by default {{.DEFAULT_CONFIG_PATH}}) |
FORCE | F |
Delete instances without confirmation (optional, by default no) |
Requirements:
- None
multipass:list
List instances of the config file. Arguments: [CONFIG|C={{.DEFAULT_CONFIG_PATH}}] (*)
[MULTIPASS] List the instances declared in the config file with their state, IP and mounts.
An instance declared but not created is shown as Missing.
Usage: task multipass:list [CONFIG|C={{.DEFAULT_CONFIG_PATH}}]
| Arguments | Description |
|---|---|
CONFIG | C |
Config file path (optional, by default {{.DEFAULT_CONFIG_PATH}}) |
Requirements:
- None
multipass:mount
Mount a local directory inside an instance. Arguments: HOST|H=docker [SOURCE|S=
[MULTIPASS] Mount a local directory inside an instance.
Usage: task multipass:mount HOST|H=<hostname> [SOURCE|S=<path>]
| Arguments | Description |
|---|---|
HOST | H |
Hostname (required) |
SOURCE | S |
Path of the local directory to mount (optional, by default current directory) |
Requirements:
- None
multipass:mount-all
Mount all local directories declared in the multipass config file. Arguments: [HOST|H=docker] [CONFIG|C={{.DEFAULT_CONFIG_PATH}}] (*)
[MULTIPASS] Mount all local directories declared in the multipass config file.
Usage: task multipass:mount-all [HOST|H=<hostname>] [CONFIG|C={{.DEFAULT_CONFIG_PATH}}]
| Arguments | Description |
|---|---|
HOST | H |
Hostname (optional, by default mount declared directories for all declared hosts) |
CONFIG | C |
Config file path (optional, by default {{.DEFAULT_CONFIG_PATH}}) |
Requirements:
- None
multipass:reset
Restart multipass daemon and kill all hyperkit instances
| Arguments | Description |
|---|---|
| - | - |
Requirements:
- None
multipass:ssh
ssh connection. Arguments: NAME|N=docker [U_USER|U=ubuntu] (*)
| Arguments | Description |
|---|---|
NAME | N |
Name of the instance (required) |
U_USER | U |
Username (optional, by default {{.DEFAULT_UUSER}}) |
Requirements:
- None
multipass:start
Start instances. Arguments: [NAME|N=instance_name] [CONFIG|C={{.DEFAULT_CONFIG_PATH}}] (*)
[MULTIPASS] Start an instance by its name or start all instances of the config file if NAME is not set.
Usage: task multipass:start [NAME|N=instance_name] [CONFIG|C={{.DEFAULT_CONFIG_PATH}}]
| Arguments | Description |
|---|---|
NAME | N |
Name for the instance (optional) |
CONFIG | C |
Config file path (optional, by default {{.DEFAULT_CONFIG_PATH}}) |
Requirements:
- None
multipass:stop
Stop instances. Arguments: [NAME|N=instance_name] [CONFIG|C={{.DEFAULT_CONFIG_PATH}}] (*)
[MULTIPASS] Stop an instance by its name or stop all instances of the config file if NAME is not set.
Usage: task multipass:stop [NAME|N=instance_name] [CONFIG|C={{.DEFAULT_CONFIG_PATH}}]
| Arguments | Description |
|---|---|
NAME | N |
Name for the instance (optional) |
CONFIG | C |
Config file path (optional, by default {{.DEFAULT_CONFIG_PATH}}) |
Requirements:
- None
multipass:umount
Unmount a directory from an instance. Arguments: HOST|H=docker [SOURCE|S=
[MULTIPASS] Unmount a directory from an instance.
Usage: task multipass:umount HOST|H=<hostname> [SOURCE|S=<path>]
| Arguments | Description |
|---|---|
HOST | H |
Hostname (required) |
SOURCE | S |
Path of the local directory to umount (optional, by default current directory) |
Requirements:
- None
multipass:umount-all
Unmount all directories from an instance. Arguments: HOST|H=docker (*)
[MULTIPASS] Unmount all directories from an instance.
Usage: task multipass:umount-all HOST|H=<hostname>
| Arguments | Description |
|---|---|
HOST | H |
Hostname (required) |
Requirements:
- None