Using cloud-init with Multipass

30 March 2018
cloud-init multipass user-data

cloud-init + Multipass

Multipass is a quick and easy way to launch virtual machine instances running Ubuntu. Cloud-init is the standard for customizing cloud instances and now multipass can also make use of cloud-init to customize an instance during launch.

Below is an example of launching a new VM with cloud-init user-data:

multipass launch -n my-test-vm --cloud-init cloud-config.yaml

user-data Format

Currently multipass only supports YAML cloud-config files. Passing a script, a MIME archive, or any of the other user-data formats cloud-init supports will result in an error from the YAML syntax validator. Check out the cloud-init docs for examples of YAML cloud-config.

YAML Syntax Validation

Multipass will validate the YAML syntax of the cloud-config file before attempting to start the VM! A nice addition to help save time when experimenting with launching instances with various cloud-configs.


Multipass uses cloud-init to pass in vendor-data to setup the VM for access by the user. If the user overrides any of the required keys (e.g. packages, ssh_authorized_keys, users, etc.) in his or her user-data then multipass will merge its own data so that the end-user will not lose access to the system.

If interested, a user can examine the executed user-data and vendor-data by looking at the files in /var/lib/cloud/instances/.

Got Questions?

As always, you can chat with the cloud-init developers in #cloud-init on Freenode or email the cloud-init mailing list.

The multipass team is also on Freenode at #multipass and to view the code and report bugs check them out on GitHub.

cloud-init 18.3 Released

20 June 2018
cloud-init ubuntu

cloud-init 18.2 Released

28 March 2018
cloud-init ubuntu

cloud-init 18.1 Released

22 February 2018
cloud-init ubuntu
comments powered by Disqus