rmm2/Makefile
cynfo3000 7f9fbd257f Linux/Proxmox Agent + Plattform-Updater + Proxmox Frontend
- agent-linux/: Kompletter Linux/Proxmox RMM Agent
  - Collectors: CPU, Memory, Disk, Network, Services, Updates, Proxmox (VMs, Container, Storage, ZFS), Backups
  - Backup Collector: Jobs nach Node gefiltert (Cluster-aware)
  - WebSocket: Tunnel-Support, writeMux fuer stabile Verbindungen
  - Systemd Service Template

- updater/: Plattform-unabhaengiger Updater (FreeBSD + Linux)
  - runtime.GOOS erkennt Plattform automatisch
  - FreeBSD: /usr/local/rmm/, service rmm_agent
  - Linux: /usr/local/bin/, /etc/rmm/, systemctl rmm-agent
  - Firmware-Download mit ?platform= Parameter

- frontend/: Proxmox-Bereich
  - ProxmoxServers.jsx: Eigene Seite fuer PVE Server mit VM/CT Counts
  - ProxmoxPanel.jsx: Detail-Panel mit Uebersicht, VMs, Container, Storage, ZFS, Tunnel, Dienste, Updates, Backups
  - Agents.jsx: Filtert Linux-Agents raus (nur OPNsense)
  - Sidebar: Proxmox Navigationspunkt
  - Installationsanleitung mit rmm-agent-linux + rmm-updater-linux

- backend: Platform-Feld fuer Agents, Firmware multi-platform
2026-03-01 22:03:18 +01:00

103 lines
3.4 KiB
Makefile

.PHONY: all backend agent agent-linux updater plugin clean certs deploy-backend deploy-agent
BACKEND_BIN = build/rmm-backend
AGENT_BIN = build/rmm-agent
AGENT_LINUX_BIN = build/rmm-agent-linux
UPDATER_BIN = build/rmm-updater
BACKEND_HOST = 192.168.85.13
AGENT_HOST = 192.168.85.33
SSH_USER = root
all: backend agent agent-linux updater
backend:
@echo "==> Building Backend (linux/amd64)..."
cd backend && GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o ../$(BACKEND_BIN) .
@echo "==> $(BACKEND_BIN) erstellt"
agent:
@echo "==> Building Agent (freebsd/amd64)..."
cd agent && GOOS=freebsd GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-X main.Version=$(VERSION)" -o ../$(AGENT_BIN) .
@echo "==> $(AGENT_BIN) erstellt"
agent-linux:
@echo "==> Building Agent Linux (linux/amd64)..."
cd agent-linux && GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-X main.Version=$(VERSION)" -o ../$(AGENT_LINUX_BIN) .
@echo "==> $(AGENT_LINUX_BIN) erstellt"
updater:
@echo "==> Building Updater (freebsd/amd64)..."
cd updater && GOOS=freebsd GOARCH=amd64 CGO_ENABLED=0 go build -o ../$(UPDATER_BIN) .
@echo "==> $(UPDATER_BIN) erstellt"
plugin:
@echo "==> Building OPNsense Plugin Package..."
cd opnsense-plugin && ./build.sh $(VERSION)
@echo "==> Plugin Package erstellt in opnsense-plugin/"
clean:
rm -rf build/ opnsense-plugin/stage/
certs:
@echo "==> Generiere self-signed TLS-Zertifikate..."
mkdir -p certs
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
-keyout certs/server.key -out certs/server.crt \
-days 3650 -nodes \
-subj "/CN=rmm-backend/O=RMM" \
-addext "subjectAltName=IP:192.168.85.13,IP:127.0.0.1,DNS:localhost"
@echo "==> Zertifikate in certs/ erstellt"
deploy-backend: backend
@echo "==> Deploying Backend to $(BACKEND_HOST)..."
ssh $(SSH_USER)@$(BACKEND_HOST) "mkdir -p /opt/rmm/certs"
scp $(BACKEND_BIN) $(SSH_USER)@$(BACKEND_HOST):/opt/rmm/rmm-backend
scp backend/config.yaml $(SSH_USER)@$(BACKEND_HOST):/opt/rmm/config.yaml
@echo "==> Erstelle systemd Service..."
ssh $(SSH_USER)@$(BACKEND_HOST) 'cat > /etc/systemd/system/rmm-backend.service << EOF\n\
[Unit]\n\
Description=RMM Backend\n\
After=network.target\n\
\n\
[Service]\n\
Type=simple\n\
WorkingDirectory=/opt/rmm\n\
ExecStart=/opt/rmm/rmm-backend /opt/rmm/config.yaml\n\
Restart=always\n\
RestartSec=5\n\
\n\
[Install]\n\
WantedBy=multi-user.target\n\
EOF'
ssh $(SSH_USER)@$(BACKEND_HOST) "systemctl daemon-reload && systemctl enable rmm-backend && systemctl restart rmm-backend"
@echo "==> Backend deployed und gestartet"
deploy-agent: agent
@echo "==> Deploying Agent to $(AGENT_HOST)..."
ssh $(SSH_USER)@$(AGENT_HOST) "mkdir -p /opt/rmm"
scp $(AGENT_BIN) $(SSH_USER)@$(AGENT_HOST):/opt/rmm/rmm-agent
scp agent/config.yaml $(SSH_USER)@$(AGENT_HOST):/opt/rmm/config.yaml
@echo "==> Erstelle rc.d Script..."
ssh $(SSH_USER)@$(AGENT_HOST) 'cat > /usr/local/etc/rc.d/rmm_agent << RCEOF\n\
#!/bin/sh\n\
#\n\
# PROVIDE: rmm_agent\n\
# REQUIRE: NETWORKING\n\
# KEYWORD: shutdown\n\
\n\
. /etc/rc.subr\n\
\n\
name="rmm_agent"\n\
rcvar="rmm_agent_enable"\n\
pidfile="/var/run/$${name}.pid"\n\
command="/opt/rmm/rmm-agent"\n\
command_args="--config /opt/rmm/config.yaml --insecure &"\n\
\n\
load_rc_config $$name\n\
run_rc_command "$$1"\n\
RCEOF\n\
chmod +x /usr/local/etc/rc.d/rmm_agent'
ssh $(SSH_USER)@$(AGENT_HOST) 'sysrc rmm_agent_enable="YES" && service rmm_agent restart'
@echo "==> Agent deployed und gestartet"