Retour au blog

Comment configurer le déploiement automatique avec Git sur un VPS

Comment configurer le déploiement automatique avec Git sur un VPS

Git est le système de contrôle de version le plus populaire dans le domaine du développement logiciel. Il est open-source et activement maintenu depuis 2005 par Linus Torvalds, le célèbre créateur de Linux. Aujourd'hui, un nombre impressionnant de projets logiciels (y compris commerciaux) utilisent Git pour la gestion des versions.

Git suit une architecture distribuée, ce qui en fait un exemple parfait de DVCS (système de contrôle de version distribué). En utilisant Git, nous pouvons gérer simultanément un dépôt local et un dépôt distant. Dans ce guide, nous allons vous montrer comment configurer un déploiement automatique d'un projet Git avec un VPS.

Prérequis

Dans ce guide, il y aura un dépôt local et un dépôt distant sur le VPS. Le dépôt local poussera les modifications vers le dépôt distant. Depuis le dépôt distant, nous pouvons pousser les modifications vers la branche beta ou  live . Pour y parvenir, vous devez d'abord vous occuper de quelques prérequis.

Pour établir une connexion sécurisée au VPS, nous utiliserons SSH. Heureusement, Git prend également en charge SSH comme protocole pour se connecter à des dépôts distants. Ce guide explore la configuration de SSH pour se connecter à des serveurs distants sur Ubuntu.

Configuration du VPS

Sur notre serveur distant, nous aurons la configuration suivante :

  • Répertoire Live : /var/www/dummy-domain.com
  • Dépôt du serveur : /var/repo/site.git

Depuis la machine locale, Git poussera les mises à jour vers le dépôt du VPS. Depuis le dépôt du VPS, nous configurerons un script que Git utilisera pour les pousser automatiquement vers le répertoire live. Il est également possible de configurer un dépôt pour les versions beta .

  • Création des dépôts

Connectez-vous au VPS et créez les emplacements des dépôts :

Deployment with Git screenshot 1

Ensuite, initialisez le dépôt Git :

Deployment with Git screenshot 2

Ici, le drapeau --bare indique qu'il n'y aura pas de fichiers sources, seulement les composants de contrôle de version.

  • Hooks

Ensuite, nous allons configurer les hooks pour le dépôt. Chaque dépôt Git contient un dossier nommé hooks. Il contient des fichiers d'exemple qui servent de modèle pour les hooks et diverses actions personnalisées.

Selon la documentation officielle de Git, il existe trois types de hooks :

  • pre-receive: Il est exécuté dès que le serveur reçoit une demande de push.
  • post-receive: Il est exécuté lorsqu'une demande de push est terminée.
  • update: Similaire à pre-receive. Cependant, il s'exécute une fois par branche.

Depuis l'emplacement du dépôt, exécutez la commande ls :

Deployment with Git code screenshot 3

Changez le répertoire actuel pour hooks:

Deployment with Git code screenshot 4

Maintenant, créez le script post-receive :

Dans le script, entrez le code suivant. Veillez à modifier les emplacements des répertoires en conséquence :

Deployment with Git code screenshot 6

Enregistrez le fichier et fermez l'éditeur. Rendez le fichier exécutable :

Deployment with Git code screenshot 7

Maintenant, chaque fois qu'un push est terminé, Git va regarder dans le script post-receive et placera les fichiers en conséquence.

Configuration de la machine locale

La machine distante est prête à accepter les mises à jour du projet Git. Ensuite, nous allons configurer le dépôt local pour utiliser le VPS comme serveur Git distant.

Créons un répertoire de projet Git d'exemple :

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

Maintenant, initialisez le dépôt :

Deployment with Git code screenshot 9

Nous devons déclarer le chemin distant du dépôt. Ici, nous allons faire référence à l'emplacement distant en tant que branche live . Ensuite, exécutez la commande suivante :

sudo git remote

Testons cela. Nous avons ajouté un script shell au répertoire du projet :

project directory

Ensuite, ajoutez le fichier au projet et effectuez un commit :

Deployment with Git code screenshot 10

Dans la commande suivante, nous allons pousser le projet vers le live serveur :

Deployment with Git code screenshot 11

Git se connectera au VPS via SSH. Si la connexion SSH a été configurée pour utiliser un mot de passe, Git demandera le mot de passe d'authentification.

Dépôt Beta

Et si le projet ne doit pas être déployé en une seule étape ? Peut-être nécessite-t-il des tests supplémentaires dans un beta répertoire. En utilisant la méthode décrite jusqu'à présent, nous pouvons créer une autre branche dans le VPS, appelée la branche beta.

  • Configuration de la branche Beta sur le VPS

Tout d'abord, nous devons créer les répertoires pour le VPS. Connectez-vous au VPS et créez un répertoire sous /var/www:

Maintenant, nous avons besoin d'un dépôt Git qui servira de beta branche :

Initialisez le dépôt :

sudo git init

Tout comme avant, implémentez un script post-receive :

sudo nano

Après cela, entrez le code suivant :

GNU nano

Enregistrez le fichier et fermez l'éditeur. Marquez post-receive comme fichier exécutable :

sudo chmod
  • Ajout du dépôt Beta sur la machine locale

Nous sommes maintenant prêts à ajouter le dépôt beta à notre dépôt local. Depuis le répertoire du projet local, exécutez la commande Git suivante :

Voilà ! Le dépôt local est maintenant configuré avec le dépôt distant beta. Essayez de pousser les modifications :

sudo git add
  • Passage de Beta à Live sur le VPS

Disons que toutes les modifications sont accumulées dans le dépôt beta . Comment pousser les modifications vers le dépôt live ? C’est très simple. Au sein du dépôt beta sur le VPS, nous ajoutons le dépôt live local. Ensuite, nous poussons simplement la version beta vers le dépôt live .

Connectez-vous au VPS et exécutez les commandes suivantes :

Ensuite, vous pouvez pousser la version beta vers live:

sudo git push live master

Conclusion

Ce guide démontre avec succès comment configurer et utiliser un VPS comme dépôt distant pour votre projet Git. Le VPS peut déployer automatiquement les derniers codes et fichiers sans aucun processus complexe. Il peut également servir de centre de collaboration entre plusieurs équipes de développement.

Avec l'aide de Git, vous pouvez établir un mécanisme simple de déploiement automatique. Pour une gestion de projet appropriée, il est cependant recommandé d'utiliser un outil comme GitLab. Le guide suivant présente l'installation et le déploiement de GitLab sur un VPS qui gère plusieurs projets. Vous pouvez également consulter comment configurer des pipelines d'intégration continue (CI) GitLab sur Ubuntu 20.04.

Bon développement !

author

Hark Labs

Auteur · CloudSigma

Preslav Dobrev est un designer créatif chez CloudSigma, axé sur une identité commerciale cohérente à travers des canaux marketing traditionnels et innovants. Il excelle à fusionner la vision artistique avec le marketing stratégique pour créer des récits de marque percutants.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier.