Skip to content

Commit bc0baf8

Browse files
01_fundamentals.md (#2997)
Grammar check
1 parent 8072e6e commit bc0baf8

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

docs/guides/virtualization/cloud-init/01_fundamentals.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
title: 1. cloud-init fundamentals
33
author: Wale Soyinka
4-
contributors: Steven Spencer
4+
contributors: Steven Spencer, Ganna Zhyrnova
55
tags:
66
- cloud-init
77
- cloud
88
- automation
99
---
1010

1111

12-
## The architecture of first boot
12+
## The architecture of the first boot
1313

1414
This guide explores `cloud-init`, the essential tool for automating the initial setup of your Rocky Linux 10 cloud instances. When we talk about deploying servers in the cloud—or even in your local virtualization lab—we often take for granted the almost instantaneous transition from a blank image to a fully functional, network-ready machine. This feat of digital alchemy is performed by a single, tireless utility: cloud-init.
1515

@@ -25,16 +25,16 @@ This is the problem **cloud-init** solves.
2525

2626
### What is cloud-init
2727

28-
Simply put, cloud-init is the industry-standard multi-distribution package that handles early initialization of cloud instances. It is the core service responsible for taking a generic image (such as the one we are using) and performing the required configuration tasks to transform it into a unique, production-ready server.
28+
Simply put, Cloud-Init is the industry-standard multi-distribution package that handles early initialization of cloud instances. It is the core service responsible for taking a generic image (such as the one we are using) and performing the required configuration tasks to transform it into a unique, production-ready server.
2929

3030
It literally sits at the heart of the provisioning process, interpreting **metadata** and **user-defined instructions** to set up the system. Without it, your cloud instance is just a beautifully compiled Linux kernel with an identity crisis.
3131

3232
### The cloud-init ecosystem
3333

34-
cloud-init is a consumer, not a creator. It relies on the underlying cloud platform (AWS, Azure, GCP, OpenStack, or local tools such as libvirt) to provide it with configuration information.
34+
Cloud-init is a consumer, not a creator. It relies on the underlying cloud platform (AWS, Azure, GCP, OpenStack, or local tools such as libvirt) to provide it with configuration information.
3535

3636
* **Cloud Providers** expose data via a specialized *data source* (often a local HTTP endpoint, a specific disk label, or a kernel parameter).
37-
* **cloud-init** detects this data source, reads the configuration, and executes the appropriate configuration steps.
37+
* **Cloud-init** detects this data source, reads the configuration, and executes the appropriate configuration steps.
3838

3939
This decoupling—where the image is generic and the configuration is provided externally—is the fundamental genius of the entire cloud deployment model.
4040

@@ -44,7 +44,7 @@ For this guide, we will be using the official [Rocky-10-GenericCloud-Base.latest
4444

4545
### The target image: A pre-wired workhorse
4646

47-
This image is special because it includes the cloud-init package pre-installed and enabled. It has been *generalized*, meaning all machine-specific identifiers, SSH host keys, and log files are all stripped out. It is ready to receive its new identity on first boot.
47+
This image is special because it includes the cloud-init package pre-installed and enabled. It has been *generalized*, meaning all machine-specific identifiers, SSH host keys, and log files are stripped out. It is ready to receive its new identity on first boot.
4848

4949
!!! warning "Use the Recommended Image"
5050

@@ -71,20 +71,20 @@ We will focus primarily on crafting effective **User-Data** files, which typical
7171

7272
## 3. The life cycle: cloud-init's four stages of initialization
7373

74-
cloud-init doesn't just run a script and exit; it executes a series of highly structured stages that align with the server's boot process. This methodical approach ensures that dependencies are met (e.g., networking is configured before packages are downloaded).
74+
Cloud-init doesn't just run a script and exit; it executes a series of highly structured stages that align with the server's boot process. This methodical approach ensures that dependencies are met (e.g., networking is configured before packages are downloaded).
7575

7676
Understanding this life cycle is crucial for debugging and knowing precisely when your custom instructions are executed.
7777

7878
| Stage | Timing & Description | Key Actions/Modules |
7979
| :---------- | :-------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------- |
8080
| **Generator** | Runs very early in the boot process. Sets up internal directories and performs basic configuration checks. | Internal setup, log initialisation. |
81-
| **Local** | Runs before the network is necessarily up. It processes local data sources like CD-ROM or virtual drives (which we'll use in our lab). | Setting hostname from local data, initial disk setup. |
81+
| **Local** | Runs before the network is necessarily up. It processes local data sources, such as CD-ROMs or virtual drives (which we'll use in our lab). | Setting hostname from local data, initial disk setup. |
8282
| **Network** | Runs once networking is fully configured and operational. It queries network-based data sources (like the cloud provider's API). | Configure network interfaces, fetch keys from network metadata. |
83-
| **Final** | Runs last. This is where the majority of user-defined configuration takes place, as all prerequisites (users, network, disks) are now ready. | Installing packages, running custom scripts (runcmd), writing files (write_files), system clean-up. |
83+
| **Final** | Runs last. This is where the majority of user-defined configuration takes place, as all prerequisites (users, network, disks) are now ready. | Installing packages, running custom scripts (runcmd), writing files (write_files), and system clean-up. |
8484

8585
!!! tip "Check the logs"
8686

87-
When troubleshooting, always check `/var/log/cloud-init.log`. This file is the forensic report of the `cloud-init` process, showing exactly when each stage began and finished, and what modules were executed along the way. If your script didn't run, the log will tell you exactly why, and which stage failed.
87+
When troubleshooting, always check `/var/log/cloud-init.log`. This file is the forensic report for the `cloud-init` process, showing exactly when each stage began and ended, and which modules were executed along the way. If your script didn't run, the log will tell you exactly why and which stage failed.
8888

8989
## What's next
9090

0 commit comments

Comments
 (0)