The standard for customising cloud instances

Cloud images are operating system templates and every instance starts out as an identical clone of every other instance. It is the user data that gives every cloud instance its personality and cloud-init is the tool that applies user data to your instances automatically.

Use cloud-init to configure:

  • Setting a default locale
  • Setting the hostname
  • Generating and setting up SSH private keys
  • Setting up ephemeral mount points

Works with many popular operating systems

While cloud-init started life in Ubuntu, it is now available for most major Linux and FreeBSD operating systems. For cloud image providers, then cloud-init handles many of the differences between cloud vendors automatically — for example, the official Ubuntu cloud images are identical across all public and private clouds.

Source code


Browse, branch, fork or clone from GitHub.

GitHub repository


Download the officially released archives.

Download project files

Used across the public cloud


Read the docs

Including datasource and module references, and plenty of examples.

Chat on Libera Chat

We have an active IRC community on #cloud-init — get involved!

Read the whitepaper

Cloud Instance Initialisation with cloud-init.

Report a bug

Help us improve the software by flagging bugs and issues you find on Launchpad.


cloud-init is developed and released as free software under both the GPLv3 open source license and the Apache License version 2.0. It was originally designed for the Ubuntu distribution of Linux in Amazon EC2, but is now supported on many Linux and UNIX distributions in every major cloud.

© 2024 Canonical Ltd. Ubuntu and Canonical are registered trademarks of Canonical Ltd.

Go to the top of the page