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. |
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 (*) |
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_USER}}) |
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] Stop an instance by its name or delete all instances of the config file if NAME is not set.
Usage: task multipass:stop [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.
Arguments | Description |
---|---|
- | - |
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 (*)
[MULTIPASS] Mount all local directories declared in the multipass config file.
Usage: task multipass:mount-all HOST|H=<hostname>
Arguments | Description |
---|---|
HOST | H |
Hostname (optional, by default mount declared directories for all declared hosts) |
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