Salta el contingut

Com fer documentació tècnica d'instal·lacions

Instal·lar un servei és només la meitat de la feina; l'altra meitat és deixar-ho documentat perquè es pugui reproduir, mantenir i revertir. Un bon document d'instal·lació és el que permet que una altra persona (o tu mateix d'aquí a sis mesos) posi en marxa el servei sense haver-te de preguntar res.

La prova de foc

Un document d'instal·lació és bo si una persona diferent de qui el va escriure pot seguir-lo de dalt a baix, en una màquina neta, i acabar amb el servei funcionant i verificat. Si cal "saber-ne un cop més", encara no està acabat.

Els quatre principis

Principi Què vol dir
Reproductibilitat Qualsevol pot obtenir el mateix resultat seguint els passos: comandes exactes, versions concretes, rutes completes.
Claredat S'entén sense context previ: objectiu, requisits i resultat esperat de cada pas.
Traçabilitat / versionat El document té versió, data i autor, i es guarda amb control de versions (Git). Els canvis queden registrats.
Seguretat Mai s'hi escriuen contrasenyes, claus ni secrets. Es referencien (gestor de secrets, .env, vault) i es documenta on són, no quins són.

Anatomia d'un document d'instal·lació

Un document d'instal·lació complet segueix sempre aquesta seqüència de seccions:

---
config:
  theme: base
  themeVariables:
    background: "#FFFFFF"
    primaryTextColor: "#1F2937"
    lineColor: "#64748B"
    primaryColor: "#e0e7ff"
    primaryBorderColor: "#2563EB"
---
flowchart TD
    A["1 · Portada i metadades"] --> B["2 · Objectiu i abast"]
    B --> C["3 · Requisits previs"]
    C --> D["4 · Arquitectura i diagrama"]
    D --> E["5 · Procediment d'instal·lació"]
    E --> F["6 · Configuració"]
    F --> G["7 · Verificació i proves"]
    G --> H["8 · Còpia de seguretat i rollback"]
    H --> I["9 · Manteniment i operació"]
    I --> J["10 · Resolució de problemes"]
    J --> K["11 · Annexos i referències"]
# Secció Què hi ha de constar
1 Portada i metadades Títol, autor, data, versió, estat (esborrany/validat) i històric de canvis.
2 Objectiu i abast Què s'instal·la i per a què; què queda fora de l'abast.
3 Requisits previs Sistema operatiu i versió, maquinari/recursos, xarxa (IP, VLAN, ports), permisos i dependències.
4 Arquitectura i diagrama Esquema de la solució: hosts, IP, ports, fluxos. Un diagrama val més que un paràgraf.
5 Procediment d'instal·lació Passos numerats i reproducibles, amb les comandes exactes i el resultat esperat de cadascun.
6 Configuració Fitxers de configuració (amb ruta completa), paràmetres i el perquè de cada valor important.
7 Verificació i proves Com comprovar que funciona (comandes de test, sortida esperada, prova des d'un client).
8 Còpia de seguretat i rollback Què cal salvar abans, i com desfer la instal·lació si surt malament.
9 Manteniment i operació Arrencada/aturada del servei, logs, actualitzacions, monitoratge.
10 Resolució de problemes Errors freqüents → causa → solució (enllaça amb la cheat sheet de diagnòstic).
11 Annexos i referències Taules d'inventari, documentació oficial, RFC i enllaços.

Com documentar un pas: de malament a excel·lent

El cor del document són els passos. Aquest exemple mostra com evoluciona un mateix pas (instal·lar un servidor DHCP) fins a ser professional:

Documentar un pas — pas a pas
Insuficient. Massa vague: ningú no ho pot reproduir sense saber-ne més. No diu el sistema operatiu, ni el paquet, ni les comandes, ni com comprovar-ho.
"Instal·la el servidor DHCP i configura el rang d'adreces."
✗ No és reproducible: cada persona ho farà diferent (o no ho sabrà fer).
Afegim el sistema operatiu i la comanda exacta. Ja es pot copiar i executar.
# Ubuntu Server 24.04 LTS
$sudo apt update
$sudo apt install -y isc-dhcp-server
⚠ Millor, però encara falta la configuració i, sobretot, com verificar que funciona.
Incloem el fitxer de configuració amb la ruta completa i la verificació: reiniciar el servei, comprovar-ne l'estat i provar-ho des d'un client.
# /etc/dhcp/dhcpd.conf
subnet 10.0.20.0 netmask 255.255.255.0 {
range 10.0.20.100 10.0.20.200;
option routers 10.0.20.1;
}
$sudo systemctl restart isc-dhcp-server
$systemctl is-active isc-dhcp-server
active ← resultat esperat
✓ Reproducible i verificable: comanda, configuració, resultat esperat i prova.
Nivell professional: hi afegim els requisits previs, una nota de seguretat i el rollback. Ara qualsevol company el pot seguir i, si cal, revertir.
# Requisit previ: IP estàtica 10.0.20.5/24 a la interfície del servei
# Seguretat: cap contrasenya al document; els secrets van al gestor de secrets
# Rollback:
$sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak # abans de tocar res
$sudo apt purge -y isc-dhcp-server # desfer la instal·lació
✓ Document complet: context, comandes, verificació, seguretat i marxa enrere.

Plantilla llesta per copiar

Copia aquesta estructura com a punt de partida de qualsevol document d'instal·lació (Markdown):

# Instal·lació de <SERVEI> a <SISTEMA>

| Camp | Valor |
|------|-------|
| Autor | Nom Cognom |
| Data | AAAA-MM-DD |
| Versió | 1.0 |
| Estat | Esborrany / Validat |

## 1. Objectiu i abast
Què s'instal·la i per a què. Què queda fora de l'abast.

## 2. Requisits previs
- Sistema operatiu i versió: ...
- Recursos (CPU/RAM/disc): ...
- Xarxa: IP, màscara, passarel·la, VLAN, ports a obrir.
- Permisos i dependències: ...

## 3. Arquitectura
Diagrama i taula d'inventari (hosts, IP, rols, ports).

## 4. Procediment d'instal·lació
1. Pas amb la comanda exacta.

       $ comanda --opcio

   Resultat esperat: ...
2. Pas següent...

## 5. Configuració
Fitxer `/ruta/completa/config`:

    parametre = valor   # per què

## 6. Verificació
- Comanda de test i sortida esperada.
- Prova des d'un client.

## 7. Còpia de seguretat i rollback
- Què cal salvar abans.
- Passos per desfer la instal·lació.

## 8. Manteniment
Arrencada/aturada, logs, actualitzacions, monitoratge.

## 9. Resolució de problemes
| Símptoma | Causa | Solució |
|----------|-------|---------|

## 10. Referències
- Documentació oficial, RFC, enllaços.

## Històric de canvis
| Versió | Data | Canvis |
|--------|------|--------|
| 1.0 | AAAA-MM-DD | Versió inicial. |

Exemple complet

Tens un document d'instal·lació sencer i ben fet aplicant tota aquesta estructura a la pàgina Exemple: documentació d'un DHCP. Fes-lo servir com a model.

Bones pràctiques

Comandes i sortides

  • Posa les comandes en blocs de codi, mai en captures de pantalla (no es poden copiar ni cercar).
  • Distingeix la comanda de la sortida esperada.
  • Marca clarament què s'executa com a root (sudo / #) i què com a usuari ($).
  • Usa rutes absolutes i versions concretes (Ubuntu 24.04, isc-dhcp-server 4.4), no "l'última versió".

Diagrames com a codi (diagrams-as-code)

Fes els esquemes amb Mermaid o draw.io en lloc d'imatges estàtiques: es versionen amb Git, es modifiquen fàcilment i queden nítids en mode clar i fosc. Inclou sempre IP, ports i sentit dels fluxos.

Credencials i secrets — MAI al document

No escriguis mai contrasenyes, claus privades ni tokens al document. Documenta on es guarden (gestor de secrets, .env fora del repositori, vault) i qui hi té accés. Un document tècnic sovint s'acaba compartint o publicant: un secret escrit hi queda per sempre.

Taula d'inventari (exemple)

Inclou sempre una taula que identifiqui els elements de la instal·lació:

Host IP VLAN Rol Ports
srv-dhcp01 10.0.20.5 20 Servidor DHCP 67/UDP
srv-dns01 10.0.10.8 10 Servidor DNS 53/UDP-TCP

Versionat i historial

Guarda la documentació amb Git (al costat de la configuració, si pots) i mantén un historial de canvis (data, versió i què has canviat), com fa el Full de versions d'aquest mòdul. Segueix un esquema clar de versions (per exemple, major.minor).

Eines recomanades

  • Redacció: Markdown + MkDocs Material (el mateix que fa servir aquest web).
  • Diagrames: Mermaid (integrat a MkDocs) i draw.io / diagrams.net.
  • Captures de terminal reproduïbles: asciinema per gravar sessions de consola.
  • Control de versions: Git + una forge (GitHub/GitLab) per revisar canvis amb pull requests.
  • Estil i estructura: el marc Diátaxis (distingeix tutorials, guies, referència i explicació) i les guies d'estil de Google o Microsoft.

Checklist de qualitat

Abans de donar per validat un document d'instal·lació, comprova que:

  • títol, autor, data, versió i historial de canvis.
  • L'objectiu i l'abast són clars.
  • Els requisits previs (SO, xarxa, permisos, dependències) hi consten.
  • Hi ha un diagrama i una taula d'inventari (hosts, IP, ports).
  • Els passos són numerats, amb comandes exactes i resultat esperat.
  • Els fitxers de configuració apareixen amb la ruta completa.
  • Hi ha una secció de verificació que demostra que funciona.
  • Hi ha còpia de seguretat i rollback.
  • No hi ha cap secret escrit (contrasenyes, claus, tokens).
  • Una persona diferent l'ha pogut seguir sense ajuda.

AC0375 — Miniactivitat: documenta una instal·lació

Tria un dels serveis del mòdul que ja hagis instal·lat (DHCP, DNS, web, FTP o correu) i redacta'n el document d'instal·lació complet seguint la plantilla d'aquesta pàgina. Ha d'incloure el diagrama, la taula d'inventari, els passos amb comandes i verificació, el rollback i el checklist de qualitat superat. Després, intercanvia el document amb un company i que intenti reproduir la instal·lació en una màquina neta: anota què li ha faltat o no ha entès i corregeix-ho.