Files
agents_and_robots/skills/devops/deploy-service/SKILL.md
T
egutierrez 6ae2e6be03 feat: scaffold del sistema de skills
Estructura inicial de skills organizadas por categoría (analysis, coding,
communication, devops, system). Incluye README con convenciones de formato
y directorio por skill con sus prompts. Las skills son plantillas de prompts
reutilizables que los agentes pueden invocar para tareas especializadas.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:16:52 +00:00

2.4 KiB

name, description
name description
deploy-service Despliega un servicio en un servidor remoto via SSH. Usa esta skill cuando el usuario pida hacer deploy, actualizar un servicio, o subir cambios a produccion/staging. Cubre: pull de codigo, build, restart del servicio, y verificacion post-deploy.

Deploy de servicio via SSH

Prerequisitos

  • El agente debe tener la tool ssh_command habilitada
  • El servidor destino debe estar configurado en ssh.allowed_targets
  • El usuario debe tener permisos de deploy (verificar roles si RBAC esta activo)

Flujo

1. Confirmar parametros

Antes de ejecutar, confirmar con el usuario:

  • Servicio: nombre del servicio a desplegar
  • Servidor: host destino (debe estar en allowed_targets)
  • Branch/tag: rama o tag a desplegar (default: main)
  • Ruta: directorio del servicio en el servidor

2. Pre-checks

Ejecutar en el servidor remoto:

# Verificar conectividad
ssh_command: "echo 'OK'" en el host destino

# Verificar que el directorio existe
ssh_command: "test -d /path/to/service && echo 'exists'"

# Verificar estado actual del servicio
ssh_command: "systemctl is-active nombre-servicio || true"

Si algun pre-check falla, informar al usuario y no continuar.

3. Deploy

Ejecutar secuencialmente:

# Pull de cambios
ssh_command: "cd /path/to/service && git fetch origin && git checkout <branch> && git pull"

# Build (si aplica)
ssh_command: "cd /path/to/service && make build"
# o: "cd /path/to/service && go build -o bin/service ./cmd/..."
# o: "cd /path/to/service && docker-compose build"

# Restart del servicio
ssh_command: "sudo systemctl restart nombre-servicio"

4. Verificacion post-deploy

# Esperar 5 segundos para que el servicio arranque
ssh_command: "sleep 5 && systemctl is-active nombre-servicio"

# Verificar logs recientes (buscar errores)
ssh_command: "journalctl -u nombre-servicio --since '1 min ago' --no-pager | tail -20"

# Health check HTTP si aplica
http_get: "http://servidor:puerto/health"

5. Reportar resultado

Informar al usuario:

  • Estado del deploy (exitoso/fallido)
  • Version desplegada (commit hash o tag)
  • Estado del servicio post-deploy
  • Cualquier warning en los logs

Rollback

Si el deploy falla o el servicio no arranca:

ssh_command: "cd /path/to/service && git checkout <commit-anterior>"
ssh_command: "sudo systemctl restart nombre-servicio"

Informar al usuario que se hizo rollback y el motivo.