README: Agent-Installation als OPNsense-Plugin mit WebGUI-Konfiguration

This commit is contained in:
cynfo3000 2026-02-28 14:15:40 +01:00
parent 1832bce852
commit 5daf81b9de

View File

@ -253,73 +253,78 @@ TimescaleDB Policies:
## Installation (Agent / OPNsense)
Der Agent wird als OPNsense-Plugin installiert — mit WebGUI-Konfiguration unter **Services > RMM Agent**.
### 1. Agent bauen
```bash
make agent # Erzeugt build/rmm-agent (freebsd/amd64)
```
### 2. Agent konfigurieren (`agent/config.yaml`)
```yaml
backend_url: "https://BACKEND_IP:8443"
api_key: "SICHERER_API_KEY"
interval_seconds: 60
agent_name: "opnsense-fw01"
insecure: true # Self-signed Certs akzeptieren (false bei CA-Certs)
```
### 3. Agent deployen
### 2. Plugin installieren
```bash
# Verzeichnis anlegen + Binary + Config kopieren
ssh root@OPNSENSE "mkdir -p /usr/local/rmm"
scp build/rmm-agent root@OPNSENSE:/usr/local/rmm/rmm-agent
scp agent/config.yaml root@OPNSENSE:/usr/local/rmm/config.yaml
# Binary + Installer auf die Firewall kopieren
scp build/rmm-agent root@OPNSENSE:/tmp/
scp opnsense-plugin/install.sh root@OPNSENSE:/tmp/
# Starten via FreeBSD daemon
ssh root@OPNSENSE 'daemon -f -p /var/run/rmm-agent.pid -o /usr/local/rmm/rmm-agent.log \
/usr/local/rmm/rmm-agent --config /usr/local/rmm/config.yaml --insecure'
# Installer ausfuehren
ssh root@OPNSENSE '/bin/sh /tmp/install.sh'
```
Oder per Makefile: `make deploy-agent`
Der Installer richtet alles ein:
- Binary nach `/usr/local/rmm/rmm-agent`
- rc.d Service (`/usr/local/etc/rc.d/rmm_agent`)
- OPNsense MVC Plugin (Model, Controller, View)
- configd Actions (start/stop/restart/status/reconfigure)
- Plugin-Hook fuer Service-Integration
- Setup-Script das Config aus dem Model generiert
### 4. Autostart einrichten (rc.d)
### 3. WebGUI konfigurieren
1. OPNsense WebGUI oeffnen
2. **Services > RMM Agent**
3. Felder ausfuellen:
- **Aktiviert**: Ankreuzen
- **Backend URL**: `https://BACKEND_IP:8443`
- **API Key**: Backend API-Key eintragen
- **Agent Name**: Optional (Standard: Hostname)
- **Heartbeat Intervall**: 60 (Sekunden)
- **Self-Signed Zertifikate**: Ankreuzen bei self-signed Backend-Certs
4. **Speichern & Anwenden** klicken
Der Agent startet automatisch und meldet sich am Backend an.
### 4. Verifizieren
```bash
ssh root@OPNSENSE 'cat > /usr/local/etc/rc.d/rmm_agent << RCEOF
#!/bin/sh
# PROVIDE: rmm_agent
# REQUIRE: NETWORKING
# KEYWORD: shutdown
# Status in der WebGUI: Badge zeigt "Running"
. /etc/rc.subr
name="rmm_agent"
rcvar="rmm_agent_enable"
pidfile="/var/run/${name}.pid"
command="/usr/local/rmm/rmm-agent"
command_args="--config /usr/local/rmm/config.yaml --insecure &"
load_rc_config $name
run_rc_command "$1"
RCEOF
chmod +x /usr/local/etc/rc.d/rmm_agent'
ssh root@OPNSENSE 'sysrc rmm_agent_enable="YES" && service rmm_agent restart'
```
### 5. Verifizieren
```bash
# Agent-Log pruefen
ssh root@OPNSENSE "tail -20 /usr/local/rmm/rmm-agent.log"
# Oder per SSH:
ssh root@OPNSENSE 'service rmm_agent status'
# Auf dem Backend: Agent sollte erscheinen
curl -sk -H "X-API-Key: DEIN_API_KEY" https://BACKEND_IP:8443/api/v1/agents
```
**Wichtig**: Agent-ID wird persistent in `/usr/local/rmm/agent_id` gespeichert. Bei Neuinstallation bleibt die ID erhalten.
### Agent-Update
Bei neuer Agent-Version:
```bash
make agent
scp build/rmm-agent root@OPNSENSE:/tmp/
ssh root@OPNSENSE '/bin/sh -c "service rmm_agent stop; cp /tmp/rmm-agent /usr/local/rmm/rmm-agent; chmod +x /usr/local/rmm/rmm-agent; service rmm_agent start"'
```
Oder Plugin komplett neu installieren (`install.sh` ist idempotent).
### Hinweise
- **Agent-ID** wird persistent in `/usr/local/rmm/agent_id` gespeichert — ueberlebt Neuinstallationen
- **Config** wird bei "Speichern & Anwenden" aus dem OPNsense-Model nach `/usr/local/rmm/config.yaml` generiert
- **Logs**: `/var/log/rmm-agent.log`
- **PID-File**: `/var/run/rmm_agent.pid`
## API