The standard for customising cloud instances

Watch tutorial

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 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

Bazaar logo


Browse and branch from Git.

GitHub logo


Browse, branch, fork or clone from GitHub.

Download logo


Download the offically released archives.


Read the docs

Always read the manual — perhaps your question has already be answered?

Chat on freenode

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

Search on Stack Exchange

Ask questions and search for answers at StackExchange.

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 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.

The team

Scott Moser profile picture

Scott Moser

Scott is the primary author and active maintainer of cloud-init, and is a technical leader on the Ubuntu Server Team for Canonical .

Joshua Harlow profile picture

Joshua Harlow

Joshua is an active maintainer of cloud-init, hacking on clouds for GoDaddy.