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-initIRC channel on Libera
- Join and ask questions on the - cloud-initmailing 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 - bootcmdor- runcmdthat 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?#
Yes, in fact some projects already do. However, cloud-init does not
currently make any API guarantees to external consumers - current library
users are projects that have close contact with cloud-init, which is why
this model currently works.
It is worth mentioning for library users that cloud-init defines a custom
log level. This log level, 35, is dedicated to logging info
related to deprecation information. Users of cloud-init as a library
may wish to ensure that this log level doesn’t collide with external
libraries that define their own custom log levels.
Where can I learn more?#
Below are some videos, blog posts, and white papers about cloud-init from a
variety of sources.
Videos:
- Perfect Proxmox Template with Cloud Image and Cloud Init [proxmox, cloud-init, template] 
- cloud-init - Building clouds one Linux box at a time (Video) 
Blog Posts:
- Cloud-init Getting Started [fedora, libvirt, cloud-init] 
- Build Azure Devops Agents With Linux cloud-init for Dotnet Development [terraform, azure, devops, docker, dotnet, cloud-init] 
- Cloud-init Getting Started [fedora, libvirt, cloud-init] 
- Setup Neovim cloud-init Completion [neovim, yaml, Language Server Protocol, jsonschema, cloud-init] 
Events:
Whitepapers: