From 3b781c2f369fc01b4b08db71350105a1fb8de99c Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Mon, 3 Nov 2025 11:36:28 +0100 Subject: [PATCH 1/3] docs(em): add cloud-init --- pages/elastic-metal/concepts.mdx | 28 +++++++++++++++++++- pages/elastic-metal/how-to/create-server.mdx | 1 + 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/pages/elastic-metal/concepts.mdx b/pages/elastic-metal/concepts.mdx index db164d7fb2..7f6e6dfc9b 100644 --- a/pages/elastic-metal/concepts.mdx +++ b/pages/elastic-metal/concepts.mdx @@ -3,11 +3,37 @@ title: Elastic Metal - Concepts description: This page explains all the concepts related to Scaleway Elastic Metal servers tags: elastic-metal rescue-mode private-networks remote-access az dates: - validation: 2025-08-27 + validation: 2025-11-03 --- import RegionAndAz from '@macros/console/region-and-az.mdx' +## Cloud-init + +**Cloud-init** is a widely used tool that automates the initial configuration of Elastic Metal servers at boot time. It allows users to define and execute custom setup instructions, transforming a generic operating system image into a fully configured dedicated machine within seconds. + +When an Elastic Metal server is launched, `cloud-init` reads user-provided configuration data—known as *user-data*—and applies it during the boot process. This enables tasks such as installing packages, creating users, configuring SSH keys, or running shell scripts automatically, without manual intervention. + +### Cloud-init user-data + +User-data is the mechanism through which configuration instructions are passed to an Instance. When cloud-init detects user-data during boot, it interprets and executes it based on the data format provided. +The following formats are supported: + +| Format | Starts with | Description | +| --------------------------- | ----------------- | ---------------------------------------------------------------- | +| **Cloud Config File** | `#cloud-config` | YAML file containing cloud-init configuration directives. | +| **Shell Script** | `#!` | Shell script executed during the first boot of the Instance. | +| **Include File** | `#include` | File listing URLs whose contents will be fetched and executed. | +| **Gzip Compressed Content** | N/A | Gzip-compressed user-data that is decompressed and executed. | +| **MIME Multipart Archive** | N/A | File combining multiple data types (e.g. cloud-config + script). | +| **Upstart Job** | `#upstart-job` | Upstart job to be executed during boot. | +| **Cloud Boothook** | `#cloud-boothook` | Script executed very early in the boot process. | +| **Part Handler** | `#part-handler` | Custom handler for processing specific data parts. | + + + Only user-data with content type `text/plain` is currently supported on Scaleway. + + ## Elastic Metal server Scaleway Elastic Metal are dedicated physical servers you can order on-demand, like Instances. These servers can be used for large workloads, big data and applications that require increased security and dedicated resources. diff --git a/pages/elastic-metal/how-to/create-server.mdx b/pages/elastic-metal/how-to/create-server.mdx index 92e6108cc0..2819e5db7f 100644 --- a/pages/elastic-metal/how-to/create-server.mdx +++ b/pages/elastic-metal/how-to/create-server.mdx @@ -35,6 +35,7 @@ Scaleway [Elastic Metal servers](https://www.scaleway.com/en/elastic-metal/) pro - Select a server configuration from the available options. - Choose an OS to run on your server or opt for no preinstalled image. - Configure server partitioning. You can either choose a default configuration or [configure your own partitioning](/elastic-metal/how-to/configure-disk-partitions/). + - Optionally, enable and configure cloud-init. Cloud-init is a widely adopted standard for customizing dedicated servers. [Learn more](/elastic-metal/concepts/#cloud-init). - Enter a name and, optionally, add tags to identify your server. - Add your SSH key (required if installing an image on your server). Depending on the OS image, you may also be asked to configure the panel user for your server. - Optionally, configure the available public bandwidth for your server. This option may not be available for all offers. From 03cbeb728803d789f806e8268c16d0f1980e9f4c Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Mon, 3 Nov 2025 14:38:38 +0100 Subject: [PATCH 2/3] Update pages/elastic-metal/concepts.mdx Co-authored-by: SamyOubouaziz --- pages/elastic-metal/concepts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/elastic-metal/concepts.mdx b/pages/elastic-metal/concepts.mdx index 7f6e6dfc9b..d8769a8f38 100644 --- a/pages/elastic-metal/concepts.mdx +++ b/pages/elastic-metal/concepts.mdx @@ -12,7 +12,7 @@ import RegionAndAz from '@macros/console/region-and-az.mdx' **Cloud-init** is a widely used tool that automates the initial configuration of Elastic Metal servers at boot time. It allows users to define and execute custom setup instructions, transforming a generic operating system image into a fully configured dedicated machine within seconds. -When an Elastic Metal server is launched, `cloud-init` reads user-provided configuration data—known as *user-data*—and applies it during the boot process. This enables tasks such as installing packages, creating users, configuring SSH keys, or running shell scripts automatically, without manual intervention. +When an Elastic Metal server is launched, `cloud-init` reads user-provided configuration data (also known as *user-data*) and applies it during the boot process. This enables tasks such as installing packages, creating users, configuring SSH keys, or running shell scripts automatically, without manual intervention. ### Cloud-init user-data From 36c96e35b18fae96c085c1f2c9b8c140eff700cf Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Mon, 3 Nov 2025 14:38:47 +0100 Subject: [PATCH 3/3] Update pages/elastic-metal/concepts.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Néda <87707325+nerda-codes@users.noreply.github.com> --- pages/elastic-metal/concepts.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pages/elastic-metal/concepts.mdx b/pages/elastic-metal/concepts.mdx index d8769a8f38..3da68dd6dc 100644 --- a/pages/elastic-metal/concepts.mdx +++ b/pages/elastic-metal/concepts.mdx @@ -21,14 +21,14 @@ The following formats are supported: | Format | Starts with | Description | | --------------------------- | ----------------- | ---------------------------------------------------------------- | -| **Cloud Config File** | `#cloud-config` | YAML file containing cloud-init configuration directives. | -| **Shell Script** | `#!` | Shell script executed during the first boot of the Instance. | -| **Include File** | `#include` | File listing URLs whose contents will be fetched and executed. | -| **Gzip Compressed Content** | N/A | Gzip-compressed user-data that is decompressed and executed. | -| **MIME Multipart Archive** | N/A | File combining multiple data types (e.g. cloud-config + script). | -| **Upstart Job** | `#upstart-job` | Upstart job to be executed during boot. | -| **Cloud Boothook** | `#cloud-boothook` | Script executed very early in the boot process. | -| **Part Handler** | `#part-handler` | Custom handler for processing specific data parts. | +| **Cloud config file** | `#cloud-config` | YAML file containing cloud-init configuration directives. | +| **Shell script** | `#!` | Shell script executed during the first boot of the Instance. | +| **Include file** | `#include` | File listing URLs whose contents will be fetched and executed. | +| **Gzip compressed content** | N/A | Gzip-compressed user-data that is decompressed and executed. | +| **MIME multipart archive** | N/A | File combining multiple data types (e.g. cloud-config + script). | +| **Upstart job** | `#upstart-job` | Upstart job to be executed during boot. | +| **Cloud boothook** | `#cloud-boothook` | Script executed very early in the boot process. | +| **Part handler** | `#part-handler` | Custom handler for processing specific data parts. | Only user-data with content type `text/plain` is currently supported on Scaleway.