pez-infra/ansible/deploy.yml
Rasmus "Pez" Wejlgaard 4e2ea9e35b
Some checks failed
Deploy (on merge) / Discover hosts (push) Waiting to run
Deploy (on merge) / deploy (push) Blocked by required conditions
Terraform / Plan (push) Has been cancelled
Terraform / Apply (push) Has been cancelled
decomm copenhagen-b and copenhagen-c (#144)
2026-07-28 10:54:23 +01:00

68 lines
1.6 KiB
YAML

---
# deploy.yml — One-command host rebuild
#
# Rebuilds a host from bare metal to fully configured using repo state.
# Assumes: SSH access via Tailscale, root user, host is in inventory.
#
# Usage:
# Full fleet: ansible-playbook deploy.yml
# Single host: ansible-playbook deploy.yml --limit helsinki-a
# Dry run: ansible-playbook deploy.yml --check --diff
# Services only (skip baseline): ansible-playbook deploy.yml --tags services
#
# Prerequisites:
# - Target host has SSH access via Tailscale
# - Target host has a base OS installed (Debian)
# - ansible-galaxy install -r requirements.yml
- name: Common baseline
hosts: all
tags: [common, baseline]
roles:
- role: common
- role: dotfiles
- name: Docker engine
hosts: docker_hosts
tags: [docker]
roles:
- role: docker
- name: Caddy + status page (helsinki-a)
hosts: helsinki-a
tags: [services, caddy, status_page]
roles:
- role: caddy
- role: status_page
- role: systemd_services
- name: Docker services
hosts: docker_hosts
tags: [services, docker_services]
roles:
- role: docker_services
- name: Mail — poste.io (nuremberg-a)
hosts: nuremberg-a
tags: [services, mail]
roles:
- role: docker_services
- name: Media stack + backups (london-b)
hosts: london-b
tags: [services, london-b]
roles:
- role: media_stack
- role: backup
- name: Proxmox VE (london-a, copenhagen-a)
hosts: proxmox_hosts
tags: [services, proxmox]
roles:
- role: proxmox_ve
- name: ZFS scrub scheduling
hosts: zfs_hosts
tags: [services, zfs]
roles:
- role: zfs