Files
mates-infra/ansible/README.md
T
mates 444191d16d feat: initial infra repo
- docker-services: 14 generic compose templates (portainer, npm, vaultwarden, gitea, jotty, nextcloud-aio, rustdesk, audiobookshelf, calibre-web, plex, erugo, jswiki, speedtest, watchtower)
- install-scripts: bash scripts for Ubuntu server bootstrap, docker, portainer, npm, backup, restore
- ansible: 4 playbooks (bootstrap, deploy-services, update-services, security-hardening) + roles skeleton
- hermes-install: Hermes CLI setup on macOS
- macos-setup: Brewfile + osx-defaults + fish-config
- home-nas-tools: metadata index for NAS projects (no binaries)
- docs: architecture, security, contributing
- README, LICENSE (MIT), .gitignore
2026-08-01 16:25:58 +02:00

89 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎭 Ansible Playbooks
> Ansible role a playbooks pro nasazení a správu home infrastruktury.
> Idempotentní, testovatelné, čitelné.
## 📁 Struktura
```
ansible/
├── README.md # Tento soubor
├── ansible.cfg # Konfigurace
├── requirements.yml # Ansible Galaxy role
├── inventory.example.yml # Ukázkový inventory
├── playbooks/
│ ├── bootstrap-server.yml # Úvodní setup nového serveru
│ ├── deploy-services.yml # Nasaď všechny Docker služby
│ ├── update-services.yml # Update všech služeb
│ └── security-hardening.yml # Bezpečnostní hardening
├── roles/
│ ├── common/ # Společné úkoly (update, packages, users)
│ ├── docker/ # Docker + compose
│ ├── portainer/ # Portainer compose
│ ├── nginx-proxy/ # Nginx Proxy Manager
│ ├── vaultwarden/ # Vaultwarden
│ ├── gitea/ # Gitea
│ └── ...
└── group_vars/
└── all.yml.example # Společné proměnné
```
## 🚀 Quickstart
```bash
# 1. Příprava
pip install ansible
ansible-galaxy install -r requirements.yml
# 2. Inventory
cp inventory.example.yml inventory.yml
nano inventory.yml # nastavit IP a SSH user
# 3. Test připojení
ansible all -m ping
# 4. Bootstrap
ansible-playbook -i inventory.yml playbooks/bootstrap-server.yml
# 5. Nasaď služby
ansible-playbook -i inventory.yml playbooks/deploy-services.yml --extra-vars "services=[portainer,vaultwarden,gitea]"
# 6. Update
ansible-playbook -i inventory.yml playbooks/update-services.yml
```
## 🎯 Playbooky
### `bootstrap-server.yml`
- Update OS
- Setup deploy user (UID 1000)
- SSH hardening
- UFW firewall
- fail2ban
- Základní utility
### `deploy-services.yml`
- Nasaď vybrané Docker služby
- Idempotentní můžeš spustit víckrát
### `update-services.yml`
- `docker compose pull && up -d` pro všechny služby
- Watchtower notifikace
### `security-hardening.yml`
- Sysctl hardening
- AppArmor profily
- Auditd pravidla
- Automatické security updaty
## 🔐 Bezpečnost
- **Bez hesel v inventory** použij `ansible-vault` nebo SSH klíče
- **Privilege escalation** `become: true` jen kde potřeba
- **Idempotence** každý task kontroluje stav
## 📚 Dokumentace
- [Ansible docs](https://docs.ansible.com/)
- [Best practices](https://docs.ansible.com/ansible/latest/user_guide/playbooks_best_practices.html)