FAQ#

How do I get help?#

Having trouble? We would like to help!

  • First go through this page with answers to common questions

  • Use the search bar at the upper left to search our documentation

  • Ask questions in the #cloud-init IRC channel on Libera

  • Join and ask questions on the cloud-init mailing list

  • Find a bug? Check out the Reporting bugs topic to find out how to report one

Why did cloud-init never complete?#

To check if cloud-init is running still, run:

cloud-init status

To wait for cloud-init to complete, run:

cloud-init status --wait

There are a number of reasons that cloud-init might never complete. This list is not exhaustive, but attempts to enumerate potential causes:

External reasons#

  • Failed dependent services in the boot.

  • Bugs in the kernel or drivers.

  • Bugs in external userspace tools that are called by cloud-init.

Internal reasons#

  • A command in bootcmd or runcmd that never completes (e.g., running cloud-init status --wait will wait forever on itself and never complete).

  • Non-standard configurations that disable timeouts or set extremely high values (“never” is used in a loose sense here).

Failing to complete on systemd#

Cloud-init consists of multiple services on systemd. If a service that cloud-init depends on stalls, cloud-init will not continue. If reporting a bug related to cloud-init failing to complete on systemd, please make sure to include the following logs.

systemd-analyze critical-chain cloud-init.target
journalctl --boot=-1
systemctl --failed

autoinstall, preruncmd, postruncmd#

Since cloud-init ignores top level user data cloud-config keys, other projects such as Juju and Subiquity autoinstaller use a YAML-formatted config that combines cloud-init’s user data cloud-config YAML format with their custom YAML keys. Since cloud-init ignores unused top level keys, these combined YAML configurations may be valid cloud-config files, however keys such as autoinstall, preruncmd, and postruncmd are not used by cloud-init to configure anything.

Please direct bugs and questions about other projects that use cloud-init to their respective support channels. For Subiquity autoinstaller that is via IRC (#ubuntu-server on Libera) or Discourse. For Juju support see their discourse page.

Can I use cloud-init as a library?#

Please don’t. Some projects do. However, cloud-init does not currently make any API guarantees to either external consumers or out-of-tree datasources / modules. Current users of cloud-init as a library are projects that have close contact with cloud-init, which is why this (fragile) model currently works.

For those that choose to ignore this advice, logging in cloud-init is configured in cloud-init/cmd/main.py, and reconfigured in the cc_rsyslog module for obvious reasons.

Where can I learn more?#

Below are some videos, blog posts, and white papers about cloud-init from a variety of sources.

Videos:

Blog Posts:

Events:

Whitepapers: