User:SorenIsANerd/cloud-init
Other names | ec2-init |
---|---|
Original author(s) | Soren Hansen |
Developer(s) | Canonical |
Initial release | 15 September 2008 |
Stable release | 22.4.2
/ 23 November 2022 |
Repository | https://github.com/canonical/cloud-init |
Written in | Python |
Operating system | Linux |
License | Apache 2.0 or GPL-3 |
Website | https://cloud-init.io/ |
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[1], as of 2023 it supports dozens of cloud providers and operating systems.
History
[edit]- 2008
- cloud-init was created as ec2-init in September by Soren Hansen[2], 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
- 2011:
- Cloud-init added to Fedora.[5]
- 2012:
- RedHat Enterprise Linux support was added.[6]
- Debian support added.[7]
- 2013:
- 2014:
- Gentoo Linux support added.[10]
- Arch Linux support added.[11]
- 2017:
- 2020:
- 2021:
- PhotonOS support added.[16]
- OpenEuler support added.[17]
- Micracle Linux support added.[18]
- EuroLinux support added.[19]
- DragonFly BSD support added.[20]
- Rocky Linux support added.
- Cloud Linux support added.[21]
- 2022:
- OpenMandriva support added.[22]
- CBL-Mariner, an operating system used internally at Microsoft, support is added.[23]
- Container-Optimized OS support added.[24]
- The FreeBSD Foundation prioritized improving FreeBSD support in cloud-init.[25]
List of supported operating systems:
[edit]- 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
[edit]Most of cloud providers supported by cloud-init include it in their official documentation.
Cloud Provider | Official documentation |
---|---|
Alibaba Cloud | Yes[26] |
Amazon Web Services EC2 | Yes[27] |
Bigstep | No |
DigitalOcean | Yes[28] |
Exoscale | Yes[29] |
Google Cloud Platform | Yes[30] |
Hetzner | Yes[31] |
Huawei Cloud | Yes[32] |
IBM Cloud | Yes[33] |
Joyent | No |
Microsoft Azure | Yes[34] |
OVH | Yes[35] |
Oracle Cloud Infrastructure | Yes[36] |
Scaleway | Yes[37] |
SmartOS | Yes[38] |
Use outside of public clouds
[edit]cloud-init also works outside of public clouds. It is well integrated with OpenStack, OpenNebula, and Apache CloudStack.
cloud-config
[edit]In addition to supporting configuration scripts passed through EC2's "user-data", or its equivalents on other clouds, in 2010 cloud-init introduced[4] 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[39], 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.
References
[edit]- ^ Hansen, Soren (2023-01-23). "The history of cloud-init and virtualization in Ubuntu". Medium. Retrieved 2023-01-23.
- ^ "Import current code. · canonical/cloud-init@88236e3". GitHub. Retrieved 2023-01-22.
- ^ "add cloud-init-run-module and ec2init/execute.py · canonical/cloud-init@ca3cafb". GitHub. Retrieved 2023-01-22.
- ^ a b "functional state now in kvm tests · canonical/cloud-init@49d3df4". GitHub. Retrieved 2023-01-30.
- ^ "cloud-init-0.6.2-0.7.bzr457.fc16 | Build Info | koji". koji.fedoraproject.org. Retrieved 2023-01-22.
- ^ "Added a new rhel distro that does the following. · canonical/cloud-init@4e5e0da". GitHub. Retrieved 2023-01-24.
- ^ "1. Add a ubuntu and fedora subclass of the RH/debian root classes · canonical/cloud-init@c55aa55". GitHub. Retrieved 2023-01-24.
- ^ "Add a SLES distro handler · canonical/cloud-init@e05e747". GitHub. Retrieved 2023-01-24.
- ^ "new: FreeBSD module to support cloud-init on the FBSD10 platform. In its · canonical/cloud-init@53f1938". GitHub. Retrieved 2023-01-24.
- ^ "Initial add Gentoo distro · canonical/cloud-init@7e2d084". GitHub. Retrieved 2023-01-24.
- ^ "Initial arch distro add. · canonical/cloud-init@79741c9". GitHub. Retrieved 2023-01-24.
- ^ "suse: Add support for openSUSE and return SLES to a working state. · canonical/cloud-init@cbda576". GitHub. Retrieved 2023-01-24.
- ^ "add Openbsd support (#147) · canonical/cloud-init@4403962". GitHub. Retrieved 2023-01-24.
- ^ "Add Netbsd support (#62) · canonical/cloud-init@94838de". GitHub. Retrieved 2023-01-24.
- ^ "Add Alpine Linux support. (#535) · canonical/cloud-init@79a8ce7". GitHub. Retrieved 2023-01-23.
- ^ "Add support for VMware PhotonOS (#909) · canonical/cloud-init@35aa9db". GitHub. Retrieved 2023-01-24.
- ^ "Support openEuler OS (#1012) · canonical/cloud-init@f4c47e3". GitHub. Retrieved 2023-01-24.
- ^ "Add miraclelinux support (#1128) · canonical/cloud-init@0ed00ad". GitHub. Retrieved 2023-01-24.
- ^ "Add support for EuroLinux 7 && EuroLinux 8 (#957) · canonical/cloud-init@3d9c862". GitHub. Retrieved 2023-01-24.
- ^ "add DragonFlyBSD support (#904) · canonical/cloud-init@59a848c". GitHub. Retrieved 2023-01-24.
- ^ "Add CloudLinux OS support (#1003) · canonical/cloud-init@f6c71fd". GitHub. Retrieved 2023-01-24.
- ^ "Add support for OpenMandriva (https://openmandriva.org/) (#1520) · canonical/cloud-init@f60149d". GitHub. Retrieved 2023-01-24.
{{cite web}}
: External link in
(help)|title=
- ^ "add mariner support (#1780) · canonical/cloud-init@699b6a0". GitHub. Retrieved 2023-01-24.
- ^ "add support for Container-Optimized OS (#1748) · canonical/cloud-init@cea875a". GitHub. Retrieved 2023-01-24.
- ^ "FreeBSD as a Tier I cloud-init Platform | FreeBSD Foundation". freebsdfoundation.org. 2022-09-30. Retrieved 2023-01-23.
- ^ "Install cloud-init - Elastic Compute Service - Alibaba Cloud Documentation Center". www.alibabacloud.com. Retrieved 2023-01-23.
- ^ "Run commands on your Linux instance at launch - Amazon Elastic Compute Cloud". docs.aws.amazon.com. Retrieved 2023-01-23.
- ^ "How To Use Cloud-Init on Ubuntu 18.04". www.digitalocean.com. Retrieved 2023-01-23.
- ^ "Cloud-Init and User-Data". community.exoscale.com. Retrieved 2023-01-23.
- ^ "Using cloud-init to customize a Linux VM instance". cloud.google.com. Retrieved 2023-01-23.
- ^ "FAQ - Hetzner Docs". docs.hetzner.com. Retrieved 2023-01-23.
- ^ "Installing Cloud-Init_Image Management Service_User Guide_Linux Operations_Huawei Cloud". support.huaweicloud.com. Retrieved 2023-01-23.
- ^ "IBM Cloud Docs". cloud.ibm.com. Retrieved 2023-01-23.
- ^ srijang. "Overview of cloud-init support for Linux VMs in Azure - Azure Virtual Machines". learn.microsoft.com. Retrieved 2023-01-23.
- ^ "Launching a script when an instance is created". docs.ovh.com. Retrieved 2023-01-23.
- ^ "Using Custom Cloud-init Initialization Scripts". docs.oracle.com. Retrieved 2023-01-23.
- ^ "Introducing Scaleway Cloud-Init Support". Scaleway Blog - European cloud provider. 2018-07-05. Retrieved 2023-01-23.
- ^ "How to create a HVM VM - SmartOS Docs". wiki.smartos.org. Retrieved 2023-01-23.
- ^ "Cloud config examples - cloud-init 22.4.2 documentation". cloudinit.readthedocs.io. Retrieved 2023-01-30.