- Add multi-environment architecture (homelab + production) - Create production environment (mini-vps) for client projects - Create homelab playbook for arch-vps services - Create production playbook for mini-vps services - Move sigvild-gallery from homelab to production - Restructure variables: group_vars/production + host_vars/arch-vps - Add backup-sigvild.yml playbook with auto-restore functionality - Fix restore logic to check for data before creating directories - Add manual variable loading workaround for Ansible 2.20 - Update all documentation for multi-environment setup - Add ADR-007 documenting multi-environment architecture decision
65 lines
1.6 KiB
YAML
65 lines
1.6 KiB
YAML
---
|
|
# Homelab Infrastructure Deployment
|
|
#
|
|
# Deploys personal homelab services to arch-vps including:
|
|
# - PostgreSQL database
|
|
# - Valkey cache/session store
|
|
# - Podman container runtime
|
|
# - Caddy web server
|
|
# - Nextcloud cloud storage
|
|
# - Authentik SSO/authentication
|
|
# - Gitea git hosting
|
|
#
|
|
# Usage:
|
|
# ansible-playbook playbooks/homelab.yml
|
|
|
|
- name: Deploy Homelab Infrastructure
|
|
hosts: homelab
|
|
become: true
|
|
gather_facts: true
|
|
|
|
tasks:
|
|
# Workaround: Manually load host_vars due to Ansible 2.20 variable loading issue
|
|
- name: Load homelab host variables
|
|
include_vars:
|
|
dir: "{{ playbook_dir }}/../host_vars/{{ inventory_hostname }}"
|
|
extensions: ['yml']
|
|
tags: always
|
|
|
|
# Deploy infrastructure services
|
|
- name: Deploy PostgreSQL
|
|
include_role:
|
|
name: postgresql
|
|
tags: ['postgresql', 'infrastructure', 'database']
|
|
|
|
- name: Deploy Valkey
|
|
include_role:
|
|
name: valkey
|
|
tags: ['valkey', 'redis', 'infrastructure', 'cache']
|
|
|
|
- name: Deploy Podman
|
|
include_role:
|
|
name: podman
|
|
tags: ['podman', 'containers', 'infrastructure']
|
|
|
|
- name: Deploy Caddy
|
|
include_role:
|
|
name: caddy
|
|
tags: ['caddy', 'infrastructure', 'web']
|
|
|
|
# Deploy application services
|
|
- name: Deploy Nextcloud
|
|
include_role:
|
|
name: nextcloud
|
|
tags: ['nextcloud', 'cloud', 'storage']
|
|
|
|
- name: Deploy Authentik
|
|
include_role:
|
|
name: authentik
|
|
tags: ['authentik', 'sso', 'auth']
|
|
|
|
- name: Deploy Gitea
|
|
include_role:
|
|
name: gitea
|
|
tags: ['gitea', 'git', 'development']
|