feat(hub): rol por nodo en deploy scripts + variable role multiselect con filtro en Fleet Overview

This commit is contained in:
Egutierrez
2026-06-07 18:00:37 +02:00
parent 41a1075b91
commit ec779b6ece
3 changed files with 44 additions and 23 deletions
+9 -6
View File
@@ -1,9 +1,10 @@
#!/usr/bin/env bash
# Despliega metrics_agent en un nodo remoto como servicio systemd.
#
# Uso: ./deploy_agent.sh <node_name> <ssh_host> [arch]
# Uso: ./deploy_agent.sh <node_name> <ssh_host> <role> [arch]
# node_name : valor de la label "instance" en Grafana (ej. homer)
# ssh_host : alias SSH del nodo (debe existir en ~/.ssh/config)
# role : label "role" para filtrar en Grafana (local | vps | movil)
# arch : amd64 (default) | arm64
#
# Requisitos:
@@ -14,9 +15,10 @@
# - sudo -n (sin password) disponible en el nodo remoto.
set -euo pipefail
NODE="${1:?uso: deploy_agent.sh <node> <ssh_host> [arch]}"
HOST="${2:?uso: deploy_agent.sh <node> <ssh_host> [arch]}"
ARCH="${3:-amd64}"
NODE="${1:?uso: deploy_agent.sh <node> <ssh_host> <role> [arch]}"
HOST="${2:?uso: deploy_agent.sh <node> <ssh_host> <role> [arch]}"
ROLE="${3:?uso: deploy_agent.sh <node> <ssh_host> <role> [arch]}"
ARCH="${4:-amd64}"
HUB="https://metrics-dxaqj3ina6eqd5pjt85wkrrj.organic-machine.com/api/v1/import/prometheus"
LOKI="https://logs-wmaxecsjcfnocz81d5luca92.organic-machine.com/loki/api/v1/push"
@@ -29,7 +31,7 @@ echo ">> copiando binario a $HOST"
scp -q -o BatchMode=yes "$BIN" "$HOST:/tmp/metrics_agent"
echo ">> instalando servicio en $NODE ($HOST)"
ssh -o BatchMode=yes "$HOST" "NODE='$NODE' PW='$PW' HUB='$HUB' LOKI='$LOKI' bash -s" <<'OUTER'
ssh -o BatchMode=yes "$HOST" "NODE='$NODE' PW='$PW' HUB='$HUB' LOKI='$LOKI' ROLE='$ROLE' bash -s" <<'OUTER'
set -e
sudo -n mkdir -p /opt/fleet-agent /etc/fleet-agent
sudo -n mv /tmp/metrics_agent /opt/fleet-agent/metrics_agent
@@ -41,7 +43,8 @@ sudo -n tee /etc/fleet-agent/agent.json >/dev/null <<JSON
"loki_url": "${LOKI}",
"user": "fleet",
"pass": "${PW}",
"interval_sec": 15
"interval_sec": 15,
"labels": { "role": "${ROLE}" }
}
JSON
sudo -n chmod 600 /etc/fleet-agent/agent.json