118 lines
3.2 KiB
Markdown
118 lines
3.2 KiB
Markdown
---
|
|
name: zerotier-mesh-join
|
|
description: >-
|
|
ZeroTier Mesh-Client für neue Agenten (SwitchHermes, LaptopHermes, Agent B).
|
|
Richtet ZeroTier ein, joint dem Mesh 6ab565387a75e498,
|
|
konfiguriert den Ollama-Zugriff auf Agent A (172.24.196.119:11434).
|
|
Einmalig ausführen auf jedem neuen Agenten.
|
|
---
|
|
|
|
# ZeroTier Mesh Join
|
|
|
|
Einmaliger Setup-Skill für neue Agenten im Multi-Agent-Mesh.
|
|
|
|
## 1. ZeroTier installieren
|
|
|
|
```bash
|
|
curl -s https://install.zerotier.com | sudo bash
|
|
```
|
|
|
|
## 2. Netzwerk joinen
|
|
|
|
```bash
|
|
sudo zerotier-cli join 6ab565387a75e498
|
|
|
|
Dann im [ZeroTier Dashboard](https://my.zerotier.com) authorisieren (Netzwerk-ID: `6ab565387a75e498`).
|
|
|
|
## 3. Verbindung prüfen
|
|
|
|
```bash
|
|
zerotier-cli listnetworks
|
|
# → Erwartet: OK, 6ab565387a75e498, Access: OK
|
|
zerotier-cli peers
|
|
# → Agent A sollte als Peer erscheinen (172.24.196.119)
|
|
```
|
|
|
|
## 4. Zugriff auf lokales Ollama testen
|
|
|
|
Alle Agenten erreichen das lokale Ollama auf Agent A nur über ZeroTier:
|
|
|
|
```bash
|
|
curl -s http://172.24.196.119:11434/api/tags | head -5
|
|
# → Sollte deepseek-r1:7b, deepseek-r1:14b, nomic-embed-text zeigen
|
|
```
|
|
|
|
## 5. Hermes-Ollama-Provider konfigurieren
|
|
|
|
In `~/.hermes/config.yaml`:
|
|
|
|
```yaml
|
|
providers:
|
|
custom:
|
|
api_key: ollama
|
|
base_url: http://172.24.196.119:11434/v1
|
|
```
|
|
|
|
Damit kann Hermes direkt das lokale Ollama auf dem VPS nutzen.
|
|
|
|
## 6. Hermes CLI in PATH (falls `hermes` nicht gefunden wird)
|
|
|
|
Auf Source-Installationen liegt der Binary in `~/.hermes/hermes-agent/hermes`:
|
|
|
|
```bash
|
|
echo 'export PATH="$HOME/.hermes/hermes-agent:$PATH"' >> ~/.bashrc
|
|
source ~/.bashrc
|
|
# Prüfen:
|
|
hermes --version
|
|
```
|
|
|
|
## 7. Sudo für Remote-Management durch Agent A
|
|
|
|
Wenn Agent A per SSH auf diesem Agenten arbeiten soll (Skills syncen, Config editieren):
|
|
|
|
**Option A — Passwordless sudo (empfohlen):**
|
|
```bash
|
|
echo 'mehlzoerwer ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/mehlzoerwer
|
|
```
|
|
|
|
**Option B — SUDO_PASSWORD in .env (tirith-sicher):**
|
|
```bash
|
|
echo 'SUDO_PASSWORD=Bp3lskt0' >> ~/.hermes/.env
|
|
```
|
|
⚠️ `sudo -S` via stdin wird von tirith blockiert — nur .env oder passwordless sudo funktionieren.
|
|
|
|
## Netzwerk-Übersicht
|
|
|
|
| Agent | ZT-IP | Node-ID | Rolle |
|
|
|-------|-------|---------|-------|
|
|
| A (VPS) | `172.24.196.119` | `adccde5dd6` | Hub, Ollama-Server |
|
|
| B | TBD | TBD | Entwickler (ZorinOS 18) |
|
|
| SwitchHermes | `172.24.20.26` | `3c1d63bbed` | Cockpit (ARM64, Nintendo Switch) |
|
|
| LaptopHermes | `172.24.178.202` | `94334e18df` | Worker (RTX 2060) |
|
|
| Handy | `172.24.92.162` | `e39b118b68` | Controller (Android) |
|
|
|
|
## Firewall-Hinweis
|
|
|
|
Ollama auf Agent A ist NUR via ZeroTier erreichbar (`172.24.0.0/16:11434`).
|
|
Port 11434 ist **nicht** vom Internet aus erreichbar.
|
|
|
|
## Migration von altem Netzwerk
|
|
|
|
Falls ein Agent noch im alten Netzwerk (`b9a18a606fb05ae6`) hängt:
|
|
|
|
```bash
|
|
# Neues Netz joinen (zuerst!)
|
|
sudo zerotier-cli join 6ab565387a75e498
|
|
# Im Dashboard authorisieren (my.zerotier.com)
|
|
# Altes Netz erst verlassen, wenn neues aktiv ist
|
|
sudo zerotier-cli leave b9a18a606fb05ae6
|
|
```
|
|
|
|
Danach alle IP-Referenzen updaten:
|
|
| Alt | Neu |
|
|
|-----|-----|
|
|
| `10.36.223.x` → | `172.24.196.x` |
|
|
| `10.36.223.0/24` → | `172.24.0.0/16` |
|
|
| `b9a18a606fb05ae6` → | `6ab565387a75e498` |
|
|
|
|
Betrifft: Ollama-Service, UFW-Regeln, duo_state.json, Hermes-Config, Skills. |