Set-OPS-Public/docs/runbooks-exploitation.md
Daniel Allaire b6952759f5 Doc à jour : unité wiki Autorisation & RBAC + leçon renouvellement + runbooks
Fermeture des dettes de doc :
- nouvelle unité wiki « Autorisation & RBAC » (authZ, exemple Grafana) ;
- section « le renouvellement est un système » dans l'unité PKI ;
- docs/runbooks-exploitation.md (cert expiré, RBAC Grafana, branding).
15 unités wiki.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 17:30:13 -04:00

66 lines
2.9 KiB
Markdown

# Runbooks d'exploitation — Set-OPS
Procédures courtes et concrètes pour les situations d'exploitation. Complète les *docs/* de
conception (le *pourquoi*) par le *comment faire*. Le wiki de formation en donne la version
pédagogique.
---
## 1. Un certificat a expiré / le login SSO est cassé
**Symptôme** : connexion à une app via le SSO échoue *après* le login ; log Grafana/app :
`tls: failed to verify certificate: x509: certificate has expired`.
**Cause fréquente** : le cert step-ca a été **renouvelé sur disque** mais le service (nginx sur
l'edge) **n'a pas été rechargé** → il sert l'ancien cert en mémoire.
**Diagnostic-réflexe** — comparer le cert *servi* au cert *fichier* :
```bash
# SERVI (en mémoire par nginx)
echo | openssl s_client -connect infra-edge-01…:443 -servername keycloak.lab… 2>/dev/null \
| openssl x509 -noout -enddate
# FICHIER (sur disque)
openssl x509 -in /etc/step/certs/infra-edge-01….crt -noout -enddate
```
Dates différentes (servi < fichier) nginx sert un cert périmé.
**Fix immédiat** : `systemctl reload nginx` sur l'edge (idem `postfix`/`dovecot`/`slapd` selon le
service touché).
**Fix permanent (déjà en place)** : `client_pki_reload_services` recharge les vrais consommateurs
après chaque renouvellement edgenginx, mailpostfix/dovecot, annuaireslapd. Vérifier :
`systemctl cat cert-renewer@$(hostname -f).service | grep ExecStartPost`.
Voir aussi l'unité wiki *PKI & confiance* (⑤ le renouvellement).
---
## 2. Donner Explore/Editor à un opérateur dans Grafana (RBAC)
Par défaut, un utilisateur SSO est **Viewer** (dashboards seulement, pas Explore). Pour l'élever :
1. Déclarer l'assignation dans l'inventaire de l'instance (group_vars `serveur_keycloak`) :
```yaml
serveur_keycloak_role_assignments:
- { user: <uid>, role: grafana-editor } # ou grafana-admin
```
2. Redéployer Keycloak (`make deployer` sur le nœud SSO) — kcadm **à chaud, sans coupure**.
3. L'utilisateur doit **se déconnecter/reconnecter** (Grafana applique le rôle à la connexion).
Mapping (défaut du rôle grafana) : `grafana-admin`→Admin, `grafana-editor`→Editor, sinon Viewer
(`serveur_grafana_oidc_role_path`). Idéal souverain : piloter par un **groupe d'annuaire** plutôt
qu'un utilisateur explicite. Voir l'unité wiki *Autorisation & RBAC*.
---
## 3. Brander une instance Forgejo (identité visuelle)
Activer dans l'inventaire (group_vars `serveur_forgejo`) :
```yaml
serveur_forgejo_branding: true
serveur_forgejo_app_name: "Forge Chezlepro"
serveur_forgejo_theme: "forgejo-dark"
serveur_forgejo_meta_description: "…"
```
Puis redéployer. Le rôle déploie le dossier `custom/` officiel (logo/favicon aurore, accent CSS par
variables, page d'accueil brandée) — léger, résistant aux MAJ (aucune classe interne touchée).
Note : ne s'applique qu'aux Forgejo **gérées par Set-OPS**.