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)
|
## Installation (Agent / OPNsense)
|
||||||
|
|
||||||
|
Der Agent wird als OPNsense-Plugin installiert — mit WebGUI-Konfiguration unter **Services > RMM Agent**.
|
||||||
|
|
||||||
### 1. Agent bauen
|
### 1. Agent bauen
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make agent # Erzeugt build/rmm-agent (freebsd/amd64)
|
make agent # Erzeugt build/rmm-agent (freebsd/amd64)
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Agent konfigurieren (`agent/config.yaml`)
|
### 2. Plugin installieren
|
||||||
|
|
||||||
```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
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Verzeichnis anlegen + Binary + Config kopieren
|
# Binary + Installer auf die Firewall kopieren
|
||||||
ssh root@OPNSENSE "mkdir -p /usr/local/rmm"
|
scp build/rmm-agent root@OPNSENSE:/tmp/
|
||||||
scp build/rmm-agent root@OPNSENSE:/usr/local/rmm/rmm-agent
|
scp opnsense-plugin/install.sh root@OPNSENSE:/tmp/
|
||||||
scp agent/config.yaml root@OPNSENSE:/usr/local/rmm/config.yaml
|
|
||||||
|
|
||||||
# Starten via FreeBSD daemon
|
# Installer ausfuehren
|
||||||
ssh root@OPNSENSE 'daemon -f -p /var/run/rmm-agent.pid -o /usr/local/rmm/rmm-agent.log \
|
ssh root@OPNSENSE '/bin/sh /tmp/install.sh'
|
||||||
/usr/local/rmm/rmm-agent --config /usr/local/rmm/config.yaml --insecure'
|
|
||||||
```
|
```
|
||||||
|
|
||||||
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
|
```bash
|
||||||
ssh root@OPNSENSE 'cat > /usr/local/etc/rc.d/rmm_agent << RCEOF
|
# Status in der WebGUI: Badge zeigt "Running"
|
||||||
#!/bin/sh
|
|
||||||
# PROVIDE: rmm_agent
|
|
||||||
# REQUIRE: NETWORKING
|
|
||||||
# KEYWORD: shutdown
|
|
||||||
|
|
||||||
. /etc/rc.subr
|
# Oder per SSH:
|
||||||
|
ssh root@OPNSENSE 'service rmm_agent status'
|
||||||
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"
|
|
||||||
|
|
||||||
# Auf dem Backend: Agent sollte erscheinen
|
# Auf dem Backend: Agent sollte erscheinen
|
||||||
curl -sk -H "X-API-Key: DEIN_API_KEY" https://BACKEND_IP:8443/api/v1/agents
|
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
|
## API
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user