Run cloud-init locally with multipass¶
Multipass is a cross-platform tool for launching Ubuntu VMs across Linux, Windows, and macOS.
When launching a Multipass VM, user data can be passed by adding the
--cloud-init
flag and an appropriate YAML file containing the user data.
For more information about the file and how to construct it, see
our explanatory guide about the user data
cloud-config format.
Create your configuration¶
In this example we will create empty network-config
and meta-data
files, and create a user-data
file with a basic cloud-init configuration.
If you have network configuration or metadata to provide, edit the
network-config
and meta-data
files accordingly.
To create the files, run the following commands:
$ touch network-config
$ touch meta-data
$ cat >user-data <<EOF
#cloud-config
password: password
chpasswd:
expire: False
ssh_pwauth: True
EOF
Launch your instance¶
You can pass the user-data
file to Multipass and launch a Bionic instance
named test-vm
with the following command:
$ multipass launch bionic --name test-vm --cloud-init user-data
Multipass will validate the user-data
configuration file before starting
the VM. This breaks all cloud-init configuration formats except the user data
cloud-config.