ubuntu-cloud-init

Solid

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.

DevOps & Infrastructure 3 stars 1 forks Updated yesterday MIT

Install

View on GitHub

Quality Score: 79/100

Stars 20%
20
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# 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...

Details

Author
air-gapped
Repository
air-gapped/skills
Created
3 months ago
Last Updated
yesterday
Language
Python
License
MIT

Integrates with

Bundled in these plugins

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Solid

ubuntu-autoinstall

Author, validate, and debug Ubuntu Server autoinstall configuration (the Subiquity installer's `autoinstall:` schema, version 1) for Ubuntu Server LTS 24.04 and 26.04, focused on unattended on-premise and air-gapped installs — identity, storage (LVM/direct/ZFS/encryption/RAID), apt mirror-selection + proxy + offline fallback, ssh, packages, kernel, late-commands/early-commands, and zero-touch delivery via a NoCloud seed. The `network:` block is netplan v2 (use the ubuntu-netplan skill); the `user-data:` block is cloud-config for the installed system (use the ubuntu-cloud-init skill).

3 Updated yesterday
air-gapped
AI & Automation Solid

ubuntu-netplan

Author, validate, and debug netplan network configuration (`/etc/netplan/*.yaml`) for Ubuntu Server LTS 24.04 and 26.04, focused on on-premise and air-gapped hosts — static addressing, bonds, bridges, VLANs, VRFs, routing/policy-routing, DNS, interface matching/renaming, and the systemd-networkd renderer (NetworkManager and desktop covered briefly). Also the shared `network:` substrate for the ubuntu-autoinstall and ubuntu-cloud-init skills, which both use netplan v2.

3 Updated yesterday
air-gapped
DevOps & Infrastructure Solid

craft-cloud

Craft Cloud — Pixel & Tonic's serverless hosting platform for Craft CMS. Covers craft-cloud.yaml configuration, the Build → Migrate → Release deploy pipeline, the craftcms/cloud extension package, edge image transforms via Cloudflare, edge static caching with cache.rules + ESI, Cloud-managed S3 filesystem, MySQL 8 / Postgres 15 databases (no MariaDB, no tablePrefix), Console-based command runner and scheduled cron (once-per-hour minimum), auto-handled queue jobs, custom domains and SSL, preview environments per branch, Cloud limitations (ephemeral filesystem, no SSH, no .htaccess, no built-in mail), plugin development requirements for Cloud compatibility, and self-hosted → Cloud migration. Triggers on: craft-cloud.yaml, craftcms/cloud package, cloud.esi(), php craft cloud/up, php craft cloud/setup, App::isEphemeral(), CRAFT_EPHEMERAL, edge.craft.cloud, preview.craft.cloud, CRAFT_CLOUD_PROJECT_ID, CRAFT_CLOUD_ENVIRONMENT_ID, CRAFT_CLOUD_CDN_BASE_URL, Build → Migrate → Release, Cloud filesystem, Cloud-compatibl

62 Updated 1 weeks ago
michtio