6ae2e6be03
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>
90 lines
2.4 KiB
Markdown
90 lines
2.4 KiB
Markdown
---
|
|
name: deploy-service
|
|
description: >
|
|
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:
|
|
```bash
|
|
# 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:
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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:
|
|
```bash
|
|
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.
|