Configuración de agente remoto¶
Opciones de configuración para personalizar el comportamiento del agente.
Variables de entorno¶
| Variable | Descripción | Requerido | Default |
|---|---|---|---|
NEXUS_TOKEN |
Token de registro | Sí | - |
AGENT_NAME |
Nombre del agente | No | hostname |
LOG_LEVEL |
Nivel de logging | No | info |
NEXUS_API_URL |
URL de la API | No | api.nexus.app |
HEARTBEAT_INTERVAL |
Intervalo de heartbeat | No | 30s |
MAX_CONCURRENT_JOBS |
Trabajos simultáneos | No | 5 |
Archivo de configuración¶
Alternativamente, usa un archivo config.yaml:
# /etc/nexus-agent/config.yaml
agent:
name: "prod-agent-1"
token: "${NEXUS_TOKEN}" # Referencia a variable de entorno
connection:
api_url: "https://api.nexus.app"
heartbeat_interval: 30s
reconnect_delay: 5s
max_reconnect_attempts: 10
execution:
max_concurrent_jobs: 5
job_timeout: 30m
work_directory: "/data/jobs"
logging:
level: info
format: json
output: stdout
file: /var/log/nexus-agent/agent.log
resources:
# Limitar recursos del agente
max_memory: "4Gi"
max_cpu: "2"
security:
# Redes permitidas para conexiones locales
allowed_networks:
- "10.0.0.0/8"
- "172.16.0.0/12"
- "192.168.0.0/16"
# Comandos bloqueados
blocked_commands:
- "rm -rf /"
- "shutdown"
- "reboot"
Configuración en Nexus¶
Además de la configuración local, configura opciones desde Nexus:
┌─────────────────────────────────────────────────────────────────┐
│ Configuración - prod-agent-1 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ General │
│ ─────────────────────────────────────────────────────────────── │
│ │
│ Nombre │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ prod-agent-1 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ Descripción │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Agente de producción - Servidor principal │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ Etiquetas │
│ [producción] [principal] [europa] [+] │
│ │
│ Capacidades │
│ ─────────────────────────────────────────────────────────────── │
│ │
│ ☑️ Ejecutar comandos shell │
│ ☑️ Acceso a base de datos │
│ ☑️ Acceso a sistema de archivos │
│ ☐ Acceso a Docker │
│ ☑️ Acceso a APIs internas │
│ │
└─────────────────────────────────────────────────────────────────┘
Asignar agente a tareas¶
Para que una tarea use un agente remoto específico:
- Edita la tarea
- En Ejecución, selecciona Agente remoto
- Elige el agente
┌─────────────────────────────────────────────────────────────────┐
│ Configuración de ejecución │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Ejecutar en: │
│ ○ Cloud (por defecto) │
│ ● Agente remoto │
│ │
│ Seleccionar agente: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ prod-agent-1 (online) ▼ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ ☐ Fallback a cloud si el agente no está disponible │
│ │
└─────────────────────────────────────────────────────────────────┘
Selección automática por etiquetas¶
Configura reglas para selección automática:
# En la tarea
execution:
target: remote
selector:
labels:
- producción
- europa
strategy: round-robin # o: random, least-loaded
El sistema elegirá automáticamente un agente que cumpla los criterios.
Capacidades personalizadas¶
Define capacidades específicas de tu agente:
# En config.yaml del agente
capabilities:
databases:
- type: postgresql
host: db.internal
port: 5432
- type: mysql
host: mysql.internal
port: 3306
apis:
- name: internal-api
base_url: https://api.internal
- name: legacy-system
base_url: http://legacy.internal:8080
filesystems:
- path: /data/shared
access: read-write
- path: /data/reports
access: read-only
Estas capacidades aparecen en Nexus y los agentes IA pueden usarlas.
Monitoreo¶
Métricas¶
El agente expone métricas en /metrics:
# Prometheus format
nexus_agent_jobs_total{status="success"} 1234
nexus_agent_jobs_total{status="failed"} 12
nexus_agent_job_duration_seconds{quantile="0.5"} 15.2
nexus_agent_connection_status 1
Logs¶
Configura destino de logs:
Siguiente: Seguridad - Buenas prácticas de seguridad.