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.
- Une machine locale et un serveur distant, utilisant tous deux Ubuntu comme système d'exploitation. Ce guide montre comment configurer et installer des serveurs Ubuntu.
- Les deux machines sont configurées avec Git.
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 :
|
1 2 3 |
cd /var sudo mkdir -pv repo && cd repo sudo mkdir -pv site.git && cd site.git |
Ensuite, initialisez le dépôt Git :
|
1 |
sudo git init --bare |
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 :
|
1 |
ls -l |
Changez le répertoire actuel pour hooks:
|
1 |
cd hooks/ |
Maintenant, créez le script post-receive :
|
1 |
sudo nano post-receive |
Dans le script, entrez le code suivant. Veillez à modifier les emplacements des répertoires en conséquence :
|
1 2 |
#!/bin/sh git --work-tree=/var/www/dummy-domain.com --git-dir=/var/repo/site.git checkout -f |
Enregistrez le fichier et fermez l'éditeur. Rendez le fichier exécutable :
|
1 |
sudo chmod +x post-receive |
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 :
Maintenant, initialisez le dépôt :
|
1 |
sudo git init |
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 :
|
1 |
sudo git remote add live ssh://<remote_username>@<remote_ip_address>/var/repo/site.git |
Testons cela. Nous avons ajouté un script shell au répertoire du projet :
Ensuite, ajoutez le fichier au projet et effectuez un commit :
|
1 2 |
sudo git add . sudo git commit -m "commit aléatoire" |
Dans la commande suivante, nous allons pousser le projet vers le live serveur :
|
1 |
sudo git push live master |
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:
|
1 2 |
cd /var/www sudo mkdir beta |
Maintenant, nous avons besoin d'un dépôt Git qui servira de beta branche :
|
1 2 |
cd /var/repo sudo mkdir -pv beta.git && cd beta.git |
Initialisez le dépôt :
|
1 |
sudo git init --bare |
Tout comme avant, implémentez un script post-receive :
|
1 2 |
cd hooks sudo nano post-receive |
Après cela, entrez le code suivant :
|
1 2 |
#!/bin/sh git --work-tree=/var/www/beta --git-dir=/var/repo/beta.git checkout -f |
Enregistrez le fichier et fermez l'éditeur. Marquez post-receive comme fichier exécutable :
|
1 |
sudo chmod +x post-receive |
-
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 :
|
1 |
sudo git remote add beta ssh://<username>@<remote_ip_address>/var/repo/beta.git |
Voilà ! Le dépôt local est maintenant configuré avec le dépôt distant beta. Essayez de pousser les modifications :
|
1 2 3 |
sudo git add . sudo git commit -m "version beta" sudo git push beta master |
-
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 :
|
1 2 |
cd /var/repo/beta.git sudo git remote add live ../site.git |
Ensuite, vous pouvez pousser la version beta vers live:
|
1 |
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 !















Commentaires
Aucun commentaire pour l'instant. Soyez le premier.