Migrate sigvild-gallery to production environment

- 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
This commit is contained in:
2025-12-15 16:33:33 +01:00
parent e8b76c6a72
commit ecbeb07ba2
18 changed files with 553 additions and 213 deletions

View File

@@ -1,29 +1,22 @@
---
# Security hardening establishes secure foundation before web services
# Main Site Deployment Playbook
#
# This playbook orchestrates deployment across all hosts:
# - Homelab (arch-vps): Personal services and experimentation
# - Production (mini-vps): Client projects requiring high uptime
#
# Usage:
# ansible-playbook site.yml # Deploy everything
# ansible-playbook site.yml -l homelab # Deploy only homelab
# ansible-playbook site.yml -l production # Deploy only production
# ansible-playbook site.yml --tags caddy # Deploy Caddy everywhere
# Security hardening playbook (optional, currently commented out)
# Establishes secure foundation before web services
# - import_playbook: playbooks/security.yml
- name: Deploy Core Infrastructure
hosts: arch-vps
become: true
gather_facts: true
roles:
# Infrastructure services
# - role: postgresql
# tags: ['postgresql', 'infrastructure', 'database']
# - role: valkey
# tags: ['valkey', 'redis', 'infrastructure', 'cache']
# - role: podman
# tags: ['podman', 'containers', 'infrastructure']
# - role: caddy
# tags: ['caddy', 'infrastructure', 'web']
# Application services
# - role: sigvild-gallery
# tags: ['sigvild', 'gallery', 'wedding']
# - role: gitea
# tags: ['gitea', 'git', 'development']
- role: nextcloud
tags: ['nextcloud']
# - role: authentik
# tags: ['authentik']
# Deploy homelab infrastructure on arch-vps
- import_playbook: playbooks/homelab.yml
# Deploy production services on mini-vps
- import_playbook: playbooks/production.yml