Ansible Configuration for Deerhide Server (RaspberryPi/Nuc)
This repository contains Ansible playbooks and roles for managing a multi-host infrastructure setup called "Deerhide". The infrastructure consists of Raspberry Pi and NUC devices running various containerized services for networking, storage, monitoring, and development purposes.
- melissa: Main server running web services and monitoring
- bunryl: Storage and development server with MinIO and GPG key management
- claudia: Docker-based development environment
- helene: Additional Raspberry Pi host
- Traefik: Reverse proxy and load balancer for service routing
- CoreDNS: DNS server for internal network resolution
- Docker: Container runtime and orchestration
- HAProxy: High availability load balancer for Kubernetes API servers
- MinIO: S3-compatible object storage service
- HTTPD: Web server for serving configuration files and static content
- NUT (Network UPS Tools): Uninterruptible Power Supply monitoring
- Auto-updates: Automated system updates with Slack notifications
- GPG Key Management: Automated GPG key generation and deployment
- Deerhide Users: Centralized user account management across all hosts
- Operator Accounts: Specialized accounts for different team members
-
Install Ansible and dependencies:
./scripts/install_ansible.sh
-
Configure your environment:
export ANSIBLE_VAULT_PASSWORD_FILE=/path/to/vault/password -
Run playbooks:
./scripts/apply_ansible_on_hosts.sh
- Must-Know Quick Start:
docs/MUST_KNOW_QUICK_START.md - Adapt and Remix:
docs/ADAPT_AND_REMIX.md - Run on a Machine:
docs/RUN_ON_A_MACHINE.md - Ansible Pull on Target:
docs/ANSIBLE_PULL.md - Ansible Vault:
docs/ANSIBLE_VAULT.md
ansible/: Main Ansible configurationplaybook.yml: Master playbook for all hostsroles/: Individual service rolesgroup_vars/: Configuration variablesinventories/: Host inventory definitions
scripts/: Utility scripts for deployment and managementansible-vars.yml: Additional configuration variables