← ClaudeAtlas

ubuntu-cloud-initlisted

Author, validate, and debug cloud-init configuration for Ubuntu Server LTS 24.04 and 26.04, focused on on-premise and air-gapped hosts via the NoCloud datasource — `#cloud-config` user-data, the cloud-config modules (users, ssh, write_files, runcmd, apt with local mirrors, ca_certs for internal CAs, ntp, disk_setup), NoCloud seeding (seed dir, `cidata` ISO, `ds=nocloud;s=...` kernel cmdline, SMBIOS serial), boot stages, and pinning `datasource_list`. Public-cloud datasources (EC2/Azure/GCE…) are pointers only. For the `network:` block use the ubuntu-netplan skill; for the installer schema use the ubuntu-autoinstall skill.
air-gapped/skills · ★ 3 · DevOps & Infrastructure · score 79
Install: claude install-skill air-gapped/skills
# ubuntu-cloud-init cloud-init runs early in boot, reads configuration from a **datasource**, and applies it through **modules** across four boot stages. This skill is authoring-led (produce correct cloud-config from a description) with a strong validation/debug path, aimed at **on-prem / air-gapped Ubuntu Server LTS** using the **NoCloud** datasource. Mapping: 24.04 LTS ≈ cloud-init 24.x; 26.04 LTS ≈ 26.1. ## Authoring workflow 1. **Identify the goal & datasource.** On-prem/air-gapped → **NoCloud** (seed dir, `cidata` ISO/USB, HTTP seed, or SMBIOS serial). Pin `datasource_list: [NoCloud]` to stop cloud-init probing cloud metadata services and timing out. 2. **Choose the user-data format** — almost always `#cloud-config`. Use MIME multipart only to combine cloud-config with scripts. (Formats table below.) 3. **Write the `#cloud-config`** using the modules needed (see Quick reference). 4. **Validate:** `cloud-init schema -c user-data --annotate`. 5. **Seed it** (NoCloud) and set a unique `instance-id` in `meta-data`. 6. **Test on a throwaway boot**, then `cloud-init clean --logs` to re-run as if first boot. ## user-data formats First line determines the format: | Header (line 1) | Format | |---|---| | `#cloud-config` | YAML config processed by modules (the usual choice). | | `#!/bin/sh` (shebang) | A script, run once per instance in the Final stage. | | `#cloud-boothook` | Runs very early, **every boot** (guard with `cloud-init-per`). | | `#include` | Lis