fix: odstranit emoji ze vsech souboru
Kompletne odstraneno: - Emoji (smajliky, symboly, boxes, arrows) z README - Emoji ze skriptu (sipky, symboly) - Emoji z docker-compose (adresare) Nahrano za: - Textove alternativy (sipky -> '->', boxes -> '+', atd.) - ASCII pouze kde to slo Ciste vsechny 7 repo (overeno Python skriptem).
This commit is contained in:
@@ -2,11 +2,11 @@
|
||||
|
||||
Ansible playbooky pro přípravu nového serveru a správu home infrastruktury.
|
||||
|
||||
> **Jsi začátečník?** Čti od [Začínáme](#zaciname) – vše je tu vysvětleno krok za krokem.
|
||||
> **Jsi začátečník?** Čti od [Začínáme](#zaciname) - vše je tu vysvětleno krok za krokem.
|
||||
|
||||
---
|
||||
|
||||
## 📚 Co je Ansible?
|
||||
## Co je Ansible?
|
||||
|
||||
Ansible je nástroj, který **automatizuje konfiguraci serverů**. Místo toho, aby ses ručně přihlašoval přes SSH a psal 50 příkazů, napíšeš **jeden příkaz** a Ansible udělá všechno za tebe.
|
||||
|
||||
@@ -24,39 +24,39 @@ a Ansible to udělá **na všech serverech** najednou.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Obsah repozitáře
|
||||
## Obsah repozitáře
|
||||
|
||||
### 🎯 Playbooky (hlavní úkoly)
|
||||
### Playbooky (hlavní úkoly)
|
||||
|
||||
| Playbook | Co dělá |
|
||||
|---|---|
|
||||
| **`priprav-novy-server.yml`** | Kompletní příprava nového serveru od nuly (update + user + SSH + Docker + adresáře + fail2ban) |
|
||||
| **`nasad-sluzby.yml`** | Nasaď Docker služby z `mates-docker-services/` (Portainer, Vaultwarden, Gitea, …) |
|
||||
| **`nasad-sluzby.yml`** | Nasaď Docker služby z `mates-docker-services/` (Portainer, Vaultwarden, Gitea, ...) |
|
||||
| **`aktualizuj-sluzby.yml`** | Aktualizuj všechny běžící služby (`docker compose pull && up -d`) |
|
||||
| **`zabezpec-server.yml`** | Bezpečnostní hardening (sysctl, auditd, automatické security updaty) |
|
||||
|
||||
### 🧩 Role (znovupoužitelné bloky)
|
||||
### Role (znovupoužitelné bloky)
|
||||
|
||||
| Role | Co dělá |
|
||||
|---|---|
|
||||
| `zaklad` | Update systému, base balíky (btop, mc, tree, curl, …), timezone |
|
||||
| `zaklad` | Update systému, base balíky (btop, mc, tree, curl, ...), timezone |
|
||||
| `uzivatel-deploy` | Vytvoří uživatele `deploy` (UID 1000) s uzamknutým heslem |
|
||||
| `ssh-klice` | Nasadí SSH klíč pro `deploy` (heslo = klíč, ne heslo) |
|
||||
| `docker` | Docker Engine + Compose plugin + nastavení daemon.json |
|
||||
| `adresare` | `/home/deploy/{docker,scripts,backups,logs,~/.local/bin}` + 14 složek pro služby |
|
||||
| `netbird` | Nainstaluje NetBird klienta (mesh VPN) – apt balíček, ne Docker |
|
||||
| `netbird` | Nainstaluje NetBird klienta (mesh VPN) - apt balíček, ne Docker |
|
||||
|
||||
### ⚙️ Konfigurace
|
||||
### ️ Konfigurace
|
||||
|
||||
| Soubor | Co obsahuje |
|
||||
|---|---|
|
||||
| `inventory.example.yml` | Ukázkový inventory – seznam serverů |
|
||||
| `group_vars/all.yml.example` | Společné proměnné (SSH klíč, porty, balíky, …) |
|
||||
| `ansible.cfg` | Konfigurace Ansible (cesty, SSH optimalizace, …) |
|
||||
| `inventory.example.yml` | Ukázkový inventory - seznam serverů |
|
||||
| `group_vars/all.yml.example` | Společné proměnné (SSH klíč, porty, balíky, ...) |
|
||||
| `ansible.cfg` | Konfigurace Ansible (cesty, SSH optimalizace, ...) |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Začínáme
|
||||
## Začínáme
|
||||
|
||||
### Krok 1: Nainstaluj Ansible
|
||||
|
||||
@@ -88,22 +88,22 @@ nano inventory.yml
|
||||
|
||||
```yaml
|
||||
all:
|
||||
vars:
|
||||
ansible_user: ubuntu # SSH user na novém serveru
|
||||
ansible_become: true # potřebuje sudo (povinné)
|
||||
ansible_ssh_pass: tvujHeslo # heslo pro první připojení (jen dočasně!)
|
||||
vars:
|
||||
ansible_user: ubuntu # SSH user na novém serveru
|
||||
ansible_become: true # potřebuje sudo (povinné)
|
||||
ansible_ssh_pass: tvujHeslo # heslo pro první připojení (jen dočasně!)
|
||||
|
||||
children:
|
||||
homeservers:
|
||||
hosts:
|
||||
novy-server:
|
||||
ansible_host: <server-ip> # IP nového serveru
|
||||
children:
|
||||
homeservers:
|
||||
hosts:
|
||||
novy-server:
|
||||
ansible_host: <server-ip> # IP nového serveru
|
||||
```
|
||||
|
||||
### Krok 4: Přidej svůj SSH klíč
|
||||
|
||||
```bash
|
||||
# Na Macu – zobraz svuj verejny klic
|
||||
# Na Macu - zobraz svuj verejny klic
|
||||
cat ~/.ssh/id_ed25519.pub
|
||||
# ssh-ed25519 AAAAC3Nz... hermes@mac
|
||||
|
||||
@@ -115,7 +115,7 @@ nano group_vars/all.yml
|
||||
V souboru najdi řádek:
|
||||
```yaml
|
||||
deploy_ssh_public_keys:
|
||||
- "ssh-ed25519 AAAAC3Nz... hermes@mac" # ← sem vlož svůj klíč
|
||||
- "ssh-ed25519 AAAAC3Nz... hermes@mac" # <- sem vlož svůj klíč
|
||||
```
|
||||
|
||||
### Krok 5: Spusť playbook
|
||||
@@ -125,17 +125,17 @@ ansible-playbook -i inventory.yml playbooks/priprav-novy-server.yml
|
||||
```
|
||||
|
||||
**Co se stane:**
|
||||
1. ✅ Ansible se připojí na server přes SSH (s heslem)
|
||||
2. ✅ Stáhne seznam balíků (`apt update`)
|
||||
3. ✅ Nainstaluje 17 základních balíků (btop, mc, tree, curl, …)
|
||||
4. ✅ Vytvoří uživatele `deploy` (UID 1000)
|
||||
5. ✅ Zamkne mu heslo (přístup jen přes SSH klíč)
|
||||
6. ✅ Přidá tvůj SSH klíč do `~/.ssh/authorized_keys`
|
||||
7. ✅ Nainstaluje Docker Engine + Compose plugin
|
||||
8. ✅ Přidá `deploy` do `docker` group (docker **bez sudo**)
|
||||
7. ✅ Vytvoří adresářovou strukturu pro 14 Docker služeb
|
||||
8. ✅ Nainstaluje NetBird (mesh VPN klient – apt balíček)
|
||||
9. ✅ Nainstaluje fail2ban (ochrana proti brute-force SSH)
|
||||
1. Ansible se připojí na server přes SSH (s heslem)
|
||||
2. Stáhne seznam balíků (`apt update`)
|
||||
3. Nainstaluje 17 základních balíků (btop, mc, tree, curl, ...)
|
||||
4. Vytvoří uživatele `deploy` (UID 1000)
|
||||
5. Zamkne mu heslo (přístup jen přes SSH klíč)
|
||||
6. Přidá tvůj SSH klíč do `~/.ssh/authorized_keys`
|
||||
7. Nainstaluje Docker Engine + Compose plugin
|
||||
8. Přidá `deploy` do `docker` group (docker **bez sudo**)
|
||||
7. Vytvoří adresářovou strukturu pro 14 Docker služeb
|
||||
8. Nainstaluje NetBird (mesh VPN klient - apt balíček)
|
||||
9. Nainstaluje fail2ban (ochrana proti brute-force SSH)
|
||||
|
||||
**Trvání:** 5-10 minut.
|
||||
|
||||
@@ -146,16 +146,16 @@ ansible-playbook -i inventory.yml playbooks/priprav-novy-server.yml
|
||||
ssh deploy@<server-ip>
|
||||
|
||||
# Over Docker
|
||||
docker ps # melo by fungovat bez sudo
|
||||
docker ps # melo by fungovat bez sudo
|
||||
docker compose version
|
||||
|
||||
# Adresare
|
||||
ls /home/deploy/ # melo byt: docker, scripts, backups, logs, ...
|
||||
ls /home/deploy/ # melo byt: docker, scripts, backups, logs, ...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎬 Práce s playbooky
|
||||
## Práce s playbooky
|
||||
|
||||
### Příprava nového serveru (úplně od nuly)
|
||||
|
||||
@@ -171,7 +171,7 @@ ansible-playbook -i inventory.yml playbooks/nasad-sluzby.yml
|
||||
|
||||
# Nasaď jen vybrané
|
||||
ansible-playbook -i inventory.yml playbooks/nasad-sluzby.yml \
|
||||
--extra-vars "sluzby=[portainer,vaultwarden]"
|
||||
--extra-vars "sluzby=[portainer,vaultwarden]"
|
||||
```
|
||||
|
||||
### Aktualizace služeb
|
||||
@@ -188,62 +188,62 @@ ansible-playbook -i inventory.yml playbooks/zabezpec-server.yml
|
||||
```
|
||||
|
||||
Tento playbook nastavuje:
|
||||
- **sysctl** – hardening síťových parametrů jádra
|
||||
- **auditd** – logování bezpečnostních událostí
|
||||
- **unattended-upgrades** – automatické bezpečnostní aktualizace
|
||||
- **sysctl** - hardening síťových parametrů jádra
|
||||
- **auditd** - logování bezpečnostních událostí
|
||||
- **unattended-upgrades** - automatické bezpečnostní aktualizace
|
||||
|
||||
---
|
||||
|
||||
## 🏗 Struktura projektu
|
||||
## Struktura projektu
|
||||
|
||||
```
|
||||
mates-ansible/
|
||||
├── README.md # Tento soubor
|
||||
├── LICENSE # MIT
|
||||
├── ansible.cfg # Konfigurace Ansible
|
||||
├── inventory.example.yml # Ukázkový inventory
|
||||
├── group_vars/
|
||||
│ └── all.yml.example # Společné proměnné
|
||||
├── playbooks/
|
||||
│ ├── priprav-novy-server.yml # Příprava nového serveru
|
||||
│ ├── nasad-sluzby.yml # Nasaď Docker služby
|
||||
│ ├── aktualizuj-sluzby.yml # Aktualizuj služby
|
||||
│ └── zabezpec-server.yml # Bezpečnostní hardening
|
||||
└── roles/
|
||||
├── zaklad/ # Update + base balíky
|
||||
├── uzivatel-deploy/ # Vytvoření deploy usera
|
||||
├── ssh-klice/ # Nasazení SSH klíče
|
||||
├── docker/ # Docker Engine + Compose
|
||||
├── adresare/ # Adresářová struktura
|
||||
└── netbird/ # NetBird (mesh VPN)
|
||||
+-- README.md # Tento soubor
|
||||
+-- LICENSE # MIT
|
||||
+-- ansible.cfg # Konfigurace Ansible
|
||||
+-- inventory.example.yml # Ukázkový inventory
|
||||
+-- group_vars/
|
||||
| +-- all.yml.example # Společné proměnné
|
||||
+-- playbooks/
|
||||
| +-- priprav-novy-server.yml # Příprava nového serveru
|
||||
| +-- nasad-sluzby.yml # Nasaď Docker služby
|
||||
| +-- aktualizuj-sluzby.yml # Aktualizuj služby
|
||||
| +-- zabezpec-server.yml # Bezpečnostní hardening
|
||||
+-- roles/
|
||||
+-- zaklad/ # Update + base balíky
|
||||
+-- uzivatel-deploy/ # Vytvoření deploy usera
|
||||
+-- ssh-klice/ # Nasazení SSH klíče
|
||||
+-- docker/ # Docker Engine + Compose
|
||||
+-- adresare/ # Adresářová struktura
|
||||
+-- netbird/ # NetBird (mesh VPN)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔑 Kde co nastavit
|
||||
## Kde co nastavit
|
||||
|
||||
| Co | Kde |
|
||||
|---|---|
|
||||
| IP serverů | `inventory.yml` |
|
||||
| SSH klíč pro deploy | `group_vars/all.yml` → `deploy_ssh_public_keys` |
|
||||
| Base balíky | `roles/zaklad/defaults/main.yml` → `base_packages` |
|
||||
| Porty | `group_vars/all.yml` → `allowed_ports` |
|
||||
| Docker daemon nastavení | `roles/docker/defaults/main.yml` → `docker_daemon_config` |
|
||||
| Služby k nasazení | `group_vars/all.yml` → `services_to_deploy` |
|
||||
| SSH klíč pro deploy | `group_vars/all.yml` -> `deploy_ssh_public_keys` |
|
||||
| Base balíky | `roles/zaklad/defaults/main.yml` -> `base_packages` |
|
||||
| Porty | `group_vars/all.yml` -> `allowed_ports` |
|
||||
| Docker daemon nastavení | `roles/docker/defaults/main.yml` -> `docker_daemon_config` |
|
||||
| Služby k nasazení | `group_vars/all.yml` -> `services_to_deploy` |
|
||||
|
||||
---
|
||||
|
||||
## 🔐 Bezpečnost
|
||||
## Bezpečnost
|
||||
|
||||
- ✅ **Deploy user má zamknuté heslo** – přístup jen přes SSH klíč
|
||||
- ✅ **Bez hesel v inventory** – použij `ansible-vault` nebo SSH klíče
|
||||
- ✅ **Docker bez sudo** – user `deploy` je v `docker` group
|
||||
- ✅ **fail2ban** – 3 pokusy o SSH = ban na 1 hodinu
|
||||
- ✅ **Firewall se nenastavuje automaticky** – viz `priprav-novy-server.yml` pro vysvětlení
|
||||
- **Deploy user má zamknuté heslo** - přístup jen přes SSH klíč
|
||||
- **Bez hesel v inventory** - použij `ansible-vault` nebo SSH klíče
|
||||
- **Docker bez sudo** - user `deploy` je v `docker` group
|
||||
- **fail2ban** - 3 pokusy o SSH = ban na 1 hodinu
|
||||
- **Firewall se nenastavuje automaticky** - viz `priprav-novy-server.yml` pro vysvětlení
|
||||
|
||||
---
|
||||
|
||||
## 📚 Další zdroje
|
||||
## Další zdroje
|
||||
|
||||
Detailní postupy najdeš v Jotty knowledge base.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user