Utiliser Git et Bash ensemble pour automatiser le déploiement continu sous Linux

Utiliser Git et Bash ensemble permet d’automatiser le déploiement continu sur des serveurs Linux. Ce choix favorise la traçabilité des changements et la reproductibilité du pipeline de livraison.

La combinaison de scripts Bash et de hooks Git offre des actions immédiates dans le terminal pour des tâches répétitives et sûres. Nous pouvons maintenant synthétiser les points clés avant d’entrer dans les exemples pratiques.

A retenir :

  • Automatisation des déploiements via hooks Git et scripts Bash
  • Séparation développement et production par push-to-deploy sur serveur nu
  • Gestion d’environnement via variables Git et désactivation ciblée
  • Bonnes pratiques opérationnelles pour permissions, tests et sécurité

Concevoir des hooks Git et scripts Bash pour un déploiement continu sous Linux

Après cette synthèse, il faut commencer par choisir les hooks adaptés au flux de travail et aux contraintes de l’équipe. Un hook bien conçu automatise des actions utiles sans imposer de risques pour la branche de production.

Hook Moment d’appel Usage courant Remarques
pre-commit Avant ajout au commit Linting local, vérification de format Rapide, côté développeur
commit-msg Après message de commit Validation du format du message Empêche mauvais messages
post-commit Après la validation locale Déploiement local de test Décrochage possible en production
post-receive Après push vers repo nu Déploiement serveur, intégration continue Contrôle de branche recommandé

A lire également :  Visual Studio Code sur Linux : installation, extensions essentielles et réglages pro

Pour activer un script, il faut retirer l’extension .sample et rendre le fichier exécutable avec chmod. Assurez-vous que la première ligne est un shebang adapté au langage du script.

Un détail critique consiste à gérer les variables d’environnement que Git définit lors des appels de hook, car elles modifient le contexte d’exécution du script. Comprendre cet environnement prépare la gestion fine des permissions et du déploiement distant.

Étapes d’activation :

  • Supprimer suffixe .sample des hooks
  • Ajouter shebang en tête des scripts
  • Rendre les scripts exécutables avec chmod
  • Tester localement avant déploiement distant

« J’ai automatisé le test rapide via post-commit et gagné des heures chaque semaine. »

Sammy N.

Gérer l’environnement et les permissions pour des scripts fiables en production

Ce passage implique de consolider l’environnement d’exécution et d’aligner les droits sur le serveur pour éviter des erreurs à l’exécution. Une mauvaise propriété du répertoire web ou un index Git mal positionné provoque des échecs inattendus.

A lire également :  Debian : corriger les erreurs d’installation de VS Code (clé GPG, sources.list, dépendances)

Variables d’environnement définies par Git et leur impact

Ce point connecte la conception des hooks à leur exécution réelle sur la machine cible et permet d’anticiper les conflits de fichiers. Les variables comme GIT_DIR, GIT_INDEX_FILE et GIT_AUTHOR_NAME modifient la manière dont Git voit le dépôt.

Variable Description Observation Exemple
GIT_DIR Chemin vers le répertoire Git Diffère pour repo nu ou local .git ou /home/user/proj
GIT_INDEX_FILE Emplacement de l’index Peut pointer hors du worktree .git/index ou unset
GIT_AUTHOR_NAME Nom de l’auteur du commit Transmis selon le hook Sammy Utilisateur
GIT_PREFIX Préfixe relatif du worktree Vide pour repo racine  » ou chemin relatif

Pour écrire des scripts robustes, testez quelles variables sont présentes et adaptez les chemins en conséquence grâce à des logs temporaires. Cette pratique aide à dépanner des comportements différents entre hooks.

Droits, propriété et bonnes pratiques sur Linux pour le déploiement

Ce volet relie la gestion des variables à l’administration système et minimise les erreurs liées aux permissions sur /var/www/html. Chown et chmod doivent être appliqués avec prudence pour éviter d’exposer le serveur.

Points de sécurité :

  • Assigner la propriété au compte d’exécution sécurisé
  • Limiter l’accès SSH aux clés publiques autorisées
  • Exécuter les scripts avec l’utilisateur non-privilégié
  • Auditer les changements de permissions régulièrement
A lire également :  Comment créer ses propres commandes Linux personnalisées

« L’équipe a réduit les incidents liés aux droits en appliquant un processus de contrôle simple. »

Alice N.

Automatiser le pipeline : du commit local au push-to-deploy sur serveur

En reliant les concepts précédents, le pipeline doit distinguer clairement les déploiements locaux des mises en production pour réduire les risques. Un flux push-to-deploy vers un dépôt nu sur le serveur permet d’automatiser la publication contrôlée.

Déploiement local via post-commit et tests rapides

Ce cas pratique montre comment utiliser post-commit pour déployer dans un répertoire web local à des fins de test, en désactivant GIT_INDEX_FILE si nécessaire. Le script typique commence par unset GIT_INDEX_FILE puis exécute git –work-tree checkout -f vers la racine web.

Étapes déploiement local :

  • Installer Apache et posséder la racine web
  • Créer index.html et ajouter au dépôt
  • Ajouter post-commit avec unset GIT_INDEX_FILE
  • Rendre le hook exécutable et tester

« J’ai configuré un post-commit local pour valider visuellement les changements avant push. »

Marco N.

Push-to-deploy sur un dépôt nu et contrôle des branches

Après avoir testé localement, il est préférable d’utiliser un dépôt nu en production et un hook post-receive pour checkout du code vers la racine web. Le script doit filtrer les références, en ne déployant que la branche principale pour éviter des surprises.

  • Initialiser repo nu sur la machine de production
  • Ajouter hook post-receive lisant oldrev newrev ref
  • Déployer uniquement refs/heads/master avec git checkout -f
  • Notifier via sortie standard pour suivi

« Utiliser un dépôt nu a rendu les déploiements reproductibles et traçables pour toute l’équipe. »

Lina N.

Pour intégrer l’intégration continue, reliez ces hooks à des tests automatisés et reportez les résultats avant tout push en production. Cette orchestration complète le passage vers une chaîne fiable d’intégration et de livraison continue.

Source : GitHub Docs, « Déploiement continu – Documentation GitHub », GitHub ; Atlassian, « qu’est-ce que c’est et comment se lancer – Atlassian », Atlassian ; GitLab, « Du code à la production : guide du déploiement continu avec … », GitLab.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut