Déployer un site Astro avec GitLab CI/CD et Ansible


DevOps
Astro GitLab CI-CD Ansible

Pourquoi automatiser le déploiement ?

Un site statique construit avec Astro peut être déployé sans serveur applicatif complexe. Le principe consiste à générer les fichiers HTML, CSS et JavaScript, puis à transférer le résultat vers le serveur web.

L’automatisation évite les opérations manuelles répétitives et rend les mises en production plus reproductibles.

Les étapes du pipeline

Une chaîne CI/CD simple peut être organisée en trois étapes :

  1. Validation : installer les dépendances et vérifier que le projet compile.
  2. Build : exécuter npm run build pour produire le répertoire dist/.
  3. Déploiement : transmettre les fichiers générés au serveur de production avec Ansible.

Le pipeline doit échouer dès qu’une étape échoue. Il vaut mieux détecter une erreur de compilation avant le déploiement que publier un site incomplet.

Exemple de commande de build

npm ci
npm run build

Avec Astro, le contenu publié se trouve généralement dans dist/. Il faut vérifier que ce répertoire contient bien les pages attendues avant de lancer le déploiement.

Déployer avec Ansible

Ansible peut synchroniser le contenu construit vers le répertoire servi par Nginx. Par exemple, une tâche utilisant ansible.posix.synchronize peut transférer le contenu de dist/ vers le répertoire cible.

Le chemin exact dépend de l’organisation du serveur. En production, il est préférable de déployer dans un nouveau répertoire de version puis de basculer un lien symbolique current, afin de pouvoir revenir rapidement à la version précédente.

Points de vigilance

  • Ne jamais placer de secrets dans le dépôt Git.
  • Utiliser des variables CI/CD protégées pour les clés et paramètres sensibles.
  • Vérifier les droits du compte de déploiement.
  • Contrôler la taille des artefacts et éviter d’y inclure node_modules/ ou le dépôt .git/.
  • Conserver une procédure de retour arrière.

Conclusion

Une chaîne Astro, GitLab CI/CD et Ansible permet de séparer clairement la compilation du déploiement. Cette approche reste légère tout en apportant traçabilité, répétabilité et maîtrise des mises en production.