Pasando del desarrollo local a la producción, la elección de la infraestructura determina la fiabilidad y la capacidad de mantenimiento. Así es como proporcioné un VPS para albergar mi sitio y desplegar el agente Hermes, siguiendo un enfoque reproducible y seguro.

1. Elección del proveedor y el tamaño

Opí por un VPS en un anfitrión europeo (RGPD friendly) con:

  • 2 vCPU, 4 GB de RAM, 80 GB NVMe SSD
  • OS: Ubuntu 24.04 LTS (apoyo a largo plazo)
  • IP fija - DNS gestionado en el lado del registrador

El tamaño deja margen para el agente Hermes, el servidor web (Nginx) y una posible base de datos local.

2. Reparamiento inicial (primero 15 min)

# Mise à jour
apt update && apt upgrade -y

# Utilisateur non-root + clé SSH
adduser deploy
usermod -aG sudo deploy
mkdir -p /home/deploy/.ssh && cp ~/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh

# SSH hardening
sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl reload sshd

# Pare-feu minimal
ufw allow OpenSSH
ufw allow 'Nginx Full'
ufw enable

3. Instalación del agente Hermes

El agente Hermes (supervisión/inventario) se instala a través de un paquete proporcionado:

# Dépôt officiel
curl -fsSL https://repo.hermes-agent.io/gpg | gpg --dearmor -o /usr/share/keyrings/hermes.gpg
echo "deb [signed-by=/usr/share/keyrings/hermes.gpg] https://repo.hermes-agent.io/stable any main" > /etc/apt/sources.list.d/hermes.list
apt update && apt install -y hermes-agent

# Configuration minimale
cat > /etc/hermes/agent.yaml <<'EOF'
server_url: "https://hermes.mondomaine.fr"
token: "{{ VAULT_HERMES_TOKEN }}"
tags:
  - role:web
  - env:prod
EOF

systemctl enable --now hermes-agent

El token se inyecta a través de un gestor secreto (Vault/SOPS) - nunca es difícil en el repositorio.

4. Despliegue del sitio (Nginx - CI/CD)

  • Nginx: Configuración TLS vía Certbot (Let's Encrypt), los encabezados de seguridad (HSTS, CSP), límite de velocidad.
  • CI/CD: Acciones de GitHub - SSH rsync systemctl reload nginx. El oleoducto también valida la salud del agente Hermes después del despliegue.

5. Supervisión y alerta

El agente Hermes sube:

  • métricas de sistema (CPU, RAM, disco, red)
  • Estado de los servicios críticos (nginx, ssh, hermes-agente)
  • Registros estructurados (JSON) a Loki

Se activa una alerta de PagerDuty si el agente no ha estado haciendo un latido durante 5 minutos.

6. Automatización para la reproducibilidad

Todo está codificado en un libro de jugadas Ansible (roles: common, nginx, hermes-agent. certbotEl aprovisionamiento de un nuevo nodo dura 10 minutos.

ansible-playbook -i inventory/prod site.yml --limit vps-web-01

Examen

  • Tiempo total: 45 min (incluyendo 20 minutos de DNS/Linamos a criptar)
  • Coste mensual: 6 euros/mes
  • ****Mantenimiento: actualizaciones sin vigilancia de las actualizaciones - Auto TLS renovación

El agente Hermes da visibilidad inmediata desde el primer minuto. Siguiente paso: añadir un segundo nodo detrás de un equilibrador de carga para la alta oferta.