Skip to main content

Guia de desplegament

Aquesta és la ruta completa per aixecar una xarxa Sora des de zero. Cada pas enllaça a la secció on s'explica en detall.

Spoiler

Fallar és l'estat natural de tot això! Comença sempre per l'entorn de testing: si falles per tot arreu, sempre el pots llençar a les escombraries i tornar a començar.

Requisits previs​

  • Proxmox VE operatiu, en standalone o en clúster, amb un token d'API i accés SSH. La documentació de Proxmox n'és la base.
  • Un servidor físic Ubuntu x64 per a l'orquestrador, on s'instal·larà Horizon, amb un usuari amb sudo sense contrasenya o root. Ha de ser físic perquè gestiona els serveis bàsics de la xarxa (DNS, DHCP, NTP, Horizon, ...): no pot dependre de Proxmox, ja que tota la resta depèn d'ell.
  • Un NAS o servidor NFS per a les còpies de seguretat.
  • Un domini a Cloudflare amb un token d'API que permeti editar la zona DNS. S'utilitza per als certificats de Let's Encrypt per DNS-01, fins i tot per a noms que només existeixen dins de la xarxa.
  • Un compte SMTP per a les notificacions per correu.
  • Opcionalment, un workspace de Slack on FluxCD envia els seus avisos d'actualitzacions i errors.

1. El servidor orquestrador​

Executar Sora Conductor al servidor orquestrador:

sudo bash -c "$(curl -fsSL https://gitlab.com/api/v4/projects/ReiIzumi%2Fsora-conductor/repository/files/init-sora-conductor.sh/raw?ref=main)"

L'assistent deixa instal·lat i configurat Pi-hole, el relay SMTP, NTP, lighttpd amb certificat, PostgreSQL, Nagios i, finalment, Sora Horizon, accessible a https://<domini>:444/horizon.

2. Configurar Horizon​

Horizon es configura alternant entre l'administrador i l'operador. La seqüència detallada és a Primers passos; en resum:

  1. Administrador: usuaris, organització (entorns, tags, ...), Nagios, Proxmox, claus SSH, NTP i la xarxa (xarxes, dominis i tipus d'IP).
  2. Operador: importar les plantilles de sora-project-infrastructure, desplegar la ISO d'Ubuntu i registrar el que ja existeix a la xarxa: adreces reservades, carpetes compartides i dispositius.

3. Stacks bàsics​

Cada peça és un stack a Horizon. L'ordre importa, perquè cadascuna fa servir l'anterior:

  1. PostgreSQL: el servidor de base de dades, i una execució de l'acció Create User per aplicació (per exemple keycloak).
  2. Monitorització: Prometheus, Loki, Tempo i Grafana.
  3. GitLab Runner, si es fa servir GitLab.

Amb la monitorització desplegada, l'administrador registra Prometheus i Grafana a Horizon a partir del mateix stack i configura Grafana.

4. Kubernetes i FluxCD​

L'operador desplega l'stack de Kubernetes: un control plane i almenys tres workers. Amb la seva sortida kubeconfig, instal·lar el Flux Operator i aplicar el FluxInstance de l'entorn. A partir d'aquí FluxCD desplega per nivells la xarxa, l'ingress, l'observabilitat, Keycloak i les aplicacions.

5. Keycloak i aplicacions​

Amb Keycloak en marxa, l'administrador el connecta a Admin › Keycloak d'Horizon, i l'operador crea els realms i importa la configuració de cada aplicació des de la secció Keycloak. Les aplicacions de FluxCD ja poden iniciar sessió, i Grafana pot passar a fer servir Keycloak.

tip

A partir d'aquest punt, el dia a dia es redueix a: editar un stack a Horizon per canviar una màquina, i fer un commit al repositori de FluxCD per canviar el que corre a Kubernetes. Les actualitzacions menors arriben soles i Slack n'avisa.