- Setting a default locale
- Setting an instance hostname
- Generating instance SSH private keys
- Adding SSH keys to a user’s
.ssh/authorized_keysso they can log in
- Setting up ephemeral mount points
- Configuring network devices
Cloud-init ‘s behavior can be configured via user-data.
User-data can be given by the user at instance launch time.
This is done via the
--user-data-file argument to
ec2-run-instances for example.
- Check your local clients documentation for how to provide a user-data string or user-data file for usage by cloud-init on instance creation.
Newer versions of cloud-init may have a list of additional features that they
support. This allows other applications to detect what features the installed
cloud-init supports without having to parse its version number. If present,
this list of features will be located at
When checking if cloud-init supports a feature, in order to not break the detection script on older versions of cloud-init without the features list, a script similar to the following should be used. Note that this will exit 0 if the feature is supported and 1 otherwise:
import sys from cloudinit import version sys.exit('<FEATURE_NAME>' not in getattr(version, 'FEATURES', ))
Currently defined feature names include:
NETWORK_CONFIG_V1support for v1 networking configuration, see curtin documentation for examples.