#Hello World
The shortest useful build — a single-VM module that boots a Debian 12 cloud image
vms:
- name: builder
source:
url: 'https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-genericcloud-amd64.qcow2'
resources:
cpu: 1
memory: '1Gi'
disks:
- name: rootdisk
size: '4Gi'
communicator:
sshUsername: debian
cloudInit:
userData: |
#cloud-config
ssh_authorized_keys: []
provisioners:
- type: shell
shell:
inline: |
echo "Hello from the build!"
sudo apt-get update
sudo apt-get install -y nginx
timeout: 30m
What's happening:
source.url— a generic cloud image. Cloud images expect cloud-init.cloudInit.userData— the emptyssh_authorized_keys: []is a placeholder; the build injects its own SSH key automatically. This block must exist for cloud-init to do its boot-time setup.communicator.sshUsername: debian— the user that cloud-init creates by default in Debian images. (Useubuntufor Ubuntu images,cloud-userfor Rocky/RHEL,fedorafor Fedora, etc.)provisioners— runs in order, top to bottom.