Initial: Mesh-Configs vom 03.09.2026 01:23

This commit is contained in:
root
2026-09-03 01:23:55 +02:00
commit 4b65134f8c
797 changed files with 146197 additions and 0 deletions
@@ -0,0 +1,35 @@
#!/bin/bash
# /usr/local/bin/duo-agent-poller.sh
# Sub-Agent Poller: Prüft alle 10s tasks/offen auf eigene (oder "beliebig") Tasks.
# Nutzung: duo-agent-poller.sh <MEINE-ZT-IP> <MEINE-AGENT-ID>
set -euo pipefail
TASKS="/srv/work/tasks"
MEINE_IP="${1:?Meine ZT-IP fehlt}"
MEINE_ID="${2:?Meine Agent-ID fehlt}"
# Suffix: letzte 2 Oktette der ZT-IP (z.B. 172.24.34.142 -> "34.142" als Präfix)
OCT=$(echo "$MEINE_IP" | awk -F. '{print $3"."$4}')
for f in "$TASKS/offen"/*.json; do
[ -f "$f" ] || continue
ZIEL=$(python3 -c "import json;print(json.load(open('$f')).get('ziel_agent',''))" 2>/dev/null || echo "")
# Nur Tasks für mich oder "beliebig" greifen
if [ "$ZIEL" = "$MEINE_ID" ] || [ "$ZIEL" = "beliebig" ]; then
# Atomarer Lock: mv/rename gewinnt, konfliktfrei auf NFS.
NEW="$TASKS/in_arbeit/${OCT}_$(basename "$f")"
if mv "$f" "$NEW" 2>/dev/null; then
python3 - "$NEW" "$MEINE_ID" << 'PYEOF'
import json, sys, time
f, agent = sys.argv[1], sys.argv[2]
t = json.load(open(f))
t["status"] = "in_arbeit"
t["in_arbeit_ts"] = str(int(time.time()))
t["bearbeiter"] = agent
json.dump(t, open(f, "w"), indent=2)
print(f"Uebernommen: {t['task_id']} von {agent}")
PYEOF
# Bearbeitungslogik ist agentenspezifisch — hier einhängen.
fi
fi
done