User:SorenIsANerd/cloud-init

cloud-init is the de facto industry standard for the initial set up, or bootstrapping, of Linux based virtual machines across every major cloud computing provider. Originally created as ec2-init for Ubuntu Server and designed to work with AWS EC2, as of 2023 it supports dozens of cloud providers and operating systems.

History

 * 2008
 * cloud-init was created as ec2-init in September by Soren Hansen, lead virtualization engineer at Canonical, as part of Ubuntu Server's cloud integration.
 * 2009
 * ec2-init is included in Ubuntu 9.04 (codenamed Jaunty Jackalope).
 * Scott Moser takes over as lead developer.
 * 2010
 * The cloud-init name makes its first appearance in January.
 * OpenStack launches and uses cloud-init.
 * The declarative cloud-config structure is introduced.
 * 2011:
 * Cloud-init added to Fedora.
 * 2012:
 * RedHat Enterprise Linux support was added.
 * Debian support added.
 * 2013:
 * SLES support added.
 * FreeBSD support added.
 * 2014:
 * Gentoo Linux support added.
 * Arch Linux support added.
 * 2017:
 * OpenSUSE support added.
 * 2020:
 * OpenBSD support added.
 * NetBSD support added.
 * Alpine Linux support added.
 * 2021:
 * PhotonOS support added.
 * OpenEuler support added.
 * Micracle Linux support added.
 * EuroLinux support added.
 * DragonFly BSD support added.
 * Rocky Linux support added.
 * Cloud Linux support added.
 * 2022:
 * OpenMandriva support added.
 * CBL-Mariner, an operating system used internally at Microsoft, support is added.
 * Container-Optimized OS support added.
 * The FreeBSD Foundation prioritized improving FreeBSD support in cloud-init.

List of supported operating systems:

 * AlmaLinux
 * Alpine Linux
 * Arch Linux
 * CBL-Mariner
 * CentOS
 * CloudLinux
 * Container-Optimized OS
 * Debian
 * DragonFly BSD
 * openEuler
 * Euro-Linux
 * Fedora
 * FreeBSD
 * Gentoo Linux
 * Miracle Linux
 * NetBSD
 * OpenBSD
 * OpenMandriva
 * openSUSE
 * Photon OS
 * Red Hat Enterprise Linux
 * Rocky Linux
 * SLES
 * Ubuntu
 * Virtuozzo

List of supported cloud providers
Most of cloud providers supported by cloud-init include it in their official documentation.

Use outside of public clouds
cloud-init also works outside of public clouds. It is well integrated with OpenStack, OpenNebula, and Apache CloudStack.

cloud-config
In addition to supporting configuration scripts passed through EC2's "user-data", or its equivalents on other clouds, in 2010 cloud-init introduced a declarative mechanism called cloud-config for configuring virtual machines. This allows users to specify e.g. SSH keys to install, Chef recipes to run, certificate authorities to add, etc., and supported operating systems will use that configuration to make the requested changes. This way the same configuration can be used across different operating systems.