README: Agent-Installation als OPNsense-Plugin mit WebGUI-Konfiguration
This commit is contained in:
parent
1832bce852
commit
5daf81b9de
99
README.md
99
README.md
@ -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
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user