Add Alpine and systemd cloud-init templates

This commit is contained in:
Damien
2026-06-10 08:09:42 +02:00
parent f3f84168c3
commit a66142632c
2 changed files with 84 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
#cloud-config
# 1. Hostname configuration
hostname: ${hostname}
fqdn: ${hostname}
preserve_hostname: false
# 2. User creation
# On Alpine, the privilege escalation group is "wheel" (not "sudo").
# Keep the default shell (ash/busybox) to stay lightweight.
users:
- name: ${username}
sudo: ALL=(ALL) NOPASSWD:ALL
groups: wheel
ssh_authorized_keys:
- ${ssh_key}
# 3. apk repositories configuration
# Pin the two repositories used on this homelab: edge/main + edge/community.
# Written BEFORE package_update/package_upgrade so apk uses this config immediately.
write_files:
- path: /etc/apk/repositories
owner: root:root
permissions: '0644'
content: |
http://dl-cdn.alpinelinux.org/alpine/edge/main
http://dl-cdn.alpinelinux.org/alpine/edge/community
# 4. System update (apk)
package_update: true
package_upgrade: true
# 5. Package installation
# - qemu-guest-agent: main repo (required so Proxmox/Terraform can read the VM IP)
# - tailscale: community repo
packages:
- qemu-guest-agent
- curl
- sudo
- tailscale
# 6. Services & configuration (OpenRC, not systemd)
# Intentional order: qemu-guest-agent first to unblock Terraform as soon as possible.
runcmd:
# Enable and start qemu-guest-agent via OpenRC
- [ rc-update, add, qemu-guest-agent, default ]
- [ rc-service, qemu-guest-agent, start ]
# Enable and start Tailscale via OpenRC
- [ rc-update, add, tailscale, default ]
- [ rc-service, tailscale, start ]
# Register the node with the tailnet
- [ tailscale, up, --authkey=${tailscale_auth_key}, --hostname=${vm_name} ]

View File

@@ -0,0 +1,32 @@
#cloud-config
# 1. Hostname configuration
hostname: ${hostname}
fqdn: ${hostname}
preserve_hostname: false
# 2. User creation
users:
- name: ${username}
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo, admin
shell: /bin/bash
ssh_authorized_keys:
- ${ssh_key}
# 3. System update
package_update: true
package_upgrade: true
# 4. Package installation
packages:
- qemu-guest-agent
- curl
# 5. Tailscale installation and configuration
runcmd:
# Enable and start qemu-guest-agent (systemd)
- [ systemctl, enable, qemu-guest-agent, --now ]
# Install and configure Tailscale
- [ sh, -c, "curl -fsSL https://tailscale.com/install.sh | sh" ]
- [ tailscale, up, --authkey=${tailscale_auth_key}, --hostname=${vm_name} ]