Agent-Updater, Multi-Plattform Firmware, Frontend Firmware-Seite, Agent-Tab, Zertifikate-Redesign
Updater: - Separater Go-Daemon (rmm-updater) als eigener rc.d Service - Pollt alle 60s: Firmware vorhanden + Hash unterschiedlich + Flag gesetzt - Download -> SHA256 Verify -> Agent Stop -> Replace -> Agent Start - Automatisches Rollback bei Fehler - Deployed und getestet auf allen 3 Firewalls (.1, .19, .33) Backend: - Firmware-DB multi-plattform (freebsd/linux/windows) - update_requested Flag pro Agent in agents Tabelle - Heartbeat-Response liefert update_available wenn Flag gesetzt - Neue Endpoints: request-update, request-update-all, firmware/download - Auth: JWT + CombinedAuth Middleware (API-Key OR JWT) - Customers CRUD + Agent-Zuordnung - Users CRUD + Passwort-Aenderung Frontend: - Firmware-Seite: Multi-Plattform Upload, Agent-Liste mit Update-Trigger - Agent-Tab im AgentPanel: Update-Button, nuetzliche Befehle, Agent-Info - Zertifikate-Tab redesigned: Karten-Layout mit Restlaufzeit und Farbbalken - Sidebar: Firmware-Eintrag hinzugefuegt Plugin: - install.sh erweitert: Installiert Agent + Updater + rc.d Services - rmm_updater rc.d Service README: - Architektur-Diagramm erweitert (Frontend + Updater) - Auth, Customers, Users, Firmware API dokumentiert - Updater-Flow dokumentiert - Frontend-Seiten und Deploy beschrieben - DB-Schema aktualisiert (neue Tabellen) - Dateistruktur erweitert (updater/, frontend/, firmware.go, auth.go)
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
#!/bin/sh
|
||||
|
||||
# PROVIDE: rmm_updater
|
||||
# REQUIRE: NETWORKING rmm_agent
|
||||
# KEYWORD: shutdown
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name="rmm_updater"
|
||||
rcvar="${name}_enable"
|
||||
command="/usr/local/rmm/rmm-updater"
|
||||
pidfile="/var/run/${name}.pid"
|
||||
command_args=""
|
||||
|
||||
start_cmd="${name}_start"
|
||||
stop_cmd="${name}_stop"
|
||||
status_cmd="${name}_status"
|
||||
|
||||
rmm_updater_start() {
|
||||
if [ -f "$pidfile" ]; then
|
||||
if kill -0 $(cat "$pidfile") 2>/dev/null; then
|
||||
echo "${name} already running"
|
||||
return 0
|
||||
fi
|
||||
rm -f "$pidfile"
|
||||
fi
|
||||
|
||||
echo "Starting ${name}."
|
||||
/usr/sbin/daemon -f -p "$pidfile" "$command" $command_args
|
||||
}
|
||||
|
||||
rmm_updater_stop() {
|
||||
if [ -f "$pidfile" ]; then
|
||||
pid=$(cat "$pidfile")
|
||||
if kill -0 "$pid" 2>/dev/null; then
|
||||
echo "Stopping ${name}."
|
||||
kill "$pid"
|
||||
rm -f "$pidfile"
|
||||
else
|
||||
echo "${name} not running (stale pidfile)"
|
||||
rm -f "$pidfile"
|
||||
fi
|
||||
else
|
||||
echo "${name} not running"
|
||||
fi
|
||||
}
|
||||
|
||||
rmm_updater_status() {
|
||||
if [ -f "$pidfile" ]; then
|
||||
pid=$(cat "$pidfile")
|
||||
if kill -0 "$pid" 2>/dev/null; then
|
||||
echo "${name} is running as pid $pid"
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
echo "${name} is not running"
|
||||
return 1
|
||||
}
|
||||
|
||||
load_rc_config $name
|
||||
: ${rmm_updater_enable:="NO"}
|
||||
run_rc_command "$1"
|
||||
Reference in New Issue
Block a user