Installation d'un serveur Git

GitBeginner
Pratiquer maintenant

Introduction

Git est un système de contrôle de version distribué, puissant et open-source, essentiel pour gérer efficacement les versions de projets. La mise en place de votre propre serveur Git améliore non seulement votre compréhension des mécanismes internes de Git, mais offre également un environnement sécurisé pour la gestion de projets privés. Ce laboratoire vous guide à travers le processus de configuration d'un serveur Git sur une machine Linux. Malgré la disponibilité de plateformes comme GitHub pour l'hébergement de code, un serveur Git privé garantit que vos données restent sécurisées sous votre contrôle.

🎯 Tâches

Dans ce projet, vous apprendrez :

  • Comment installer et configurer Git sur un système Linux
  • Comment créer et gérer un utilisateur spécifiquement pour les opérations Git
  • Comment générer et configurer des clés SSH pour sécuriser les connexions entre votre machine locale et le serveur Git
  • Comment initialiser et gérer un dépôt Git localement et sur un serveur
  • Comment effectuer des opérations de contrôle de version telles que la validation des modifications (committing) et leur envoi (pushing) vers un dépôt distant
  • Comment vérifier la configuration en clonant le dépôt pour s'assurer que tout fonctionne correctement

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Comprendre les bases de l'installation et de la configuration de Git, un système de contrôle de version distribué, dans un environnement Linux
  • Gérer les permissions utilisateur et la sécurité dans un système Unix/Linux pour des tâches spécifiques à une application
  • Utiliser des techniques de communication sécurisée entre machines à l'aide de clés SSH, une compétence essentielle pour la gestion de serveurs distants
  • Créer et gérer des dépôts Git "bare" (nus), qui sont utilisés pour le stockage côté serveur dans les opérations Git
  • Valider (commit) et versionner vos projets en utilisant les commandes Git, et envoyer ces modifications vers un serveur distant
  • Vérifier et dépanner les problèmes courants dans la gestion des dépôts distants en clonant et en inspectant l'intégrité des données

Installation de Git

Dans cette étape, nous allons installer Git sur votre machine, qui servira à la fois de serveur local et distant. Cet exercice vous préparera à potentiellement configurer un serveur Git sur votre ordinateur personnel pour l'hébergement sur le réseau local.

## Mettre à jour la base de données des paquets apt pour s'assurer que nous travaillons avec la liste de logiciels la plus récente
sudo apt-get update

## Installer Git en utilisant apt-get
sudo apt-get install git

Cette commande met à jour votre liste de paquets pour garantir que toutes les installations ultérieures sont à jour, puis installe Git, le système de contrôle de version qui gérera nos dépôts.

Configuration de l'utilisateur Git

Pour faciliter la gestion, nous allons créer un nouvel utilisateur spécifiquement pour les opérations Git et configurer son répertoire de travail.

## Créer un nouvel utilisateur pour les opérations Git
sudo useradd labex-git
sudo passwd labex-git

Définissez un mot de passe pour l'utilisateur Git (par exemple "labex"), vous devrez entrer le mot de passe deux fois.

Ensuite, créez un répertoire de travail pour l'utilisateur Git et attribuez-en la propriété

sudo mkdir /home/labex-git
sudo chown -R labex-git:labex-git /home/labex-git

Cette série de commandes crée un nouvel utilisateur, définit un mot de passe et établit un répertoire de travail dédié aux opérations Git, garantissant que la gestion des dépôts est isolée des autres activités du système.

Génération des clés SSH

L'utilisation de clés SSH simplifiera nos opérations Git en éliminant la nécessité de saisir les identifiants de l'utilisateur à chaque opération. Générons une paire de clés SSH et configurons-la.

## Générer une paire de clés SSH
ssh-keygen -t rsa -C "labex@labex.io"

Appuyez sur Entrée à toutes les invites pour utiliser les paramètres par défaut. Ensuite, envoyez la clé publique à la machine de l'utilisateur Git.

cat ~/.ssh/id_rsa.pub | ssh labex-git@localhost 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

Ici, vous devriez entrer "yes" et le mot de passe que vous avez défini précédemment.

Cette étape génère une paire de clés SSH, sécurisant la connexion entre votre configuration locale et distante. La clé publique est ensuite ajoutée à la liste autorisée sur le serveur Git, permettant une communication sécurisée sans avoir besoin d'un mot de passe pour chaque opération.

Création d'un dépôt distant

Maintenant, nous allons passer à l'utilisateur Git et configurer un dépôt Git "bare" (nu) qui convient au stockage côté serveur.

## Passer à l'utilisateur Git
su labex-git

Entrez le mot de passe que vous avez défini.

Maintenant, vous pouvez créer un dossier de dépôt et initialiser un dépôt "bare".

mkdir -p /home/labex-git/project.git
cd /home/labex-git/project.git
git init --bare

Cette séquence de commandes permet de passer à l'utilisateur Git, de créer un nouveau répertoire pour votre dépôt et d'initialiser un dépôt "bare". Cette configuration est cruciale pour le serveur Git car il stockera toutes les données qui lui sont envoyées sans conserver de copies de travail, ce qui le rend idéal pour pousser et tirer des données.

Configuration du dépôt local

Dans cette étape, nous allons configurer le dépôt local sur votre machine. Ce processus reflète ce que vous feriez normalement sur une plateforme d'hébergement de code.

Tout d'abord, revenez à votre utilisateur habituel depuis l'utilisateur Git :

## Quitter l'utilisateur Git
exit

Maintenant, créons un répertoire pour votre projet et initialisons un dépôt Git :

## Créer un répertoire pour votre projet
mkdir -p /home/labex/project/labex_project
cd /home/labex/project/labex_project

## Initialiser un dépôt Git
git init

Ceci configure un nouveau dépôt Git dans le répertoire spécifié, qui servira de dépôt local pour le projet.

Configurez les détails de votre utilisateur Git :

## Définir votre nom d'utilisateur Git
git config --global user.name "labex"

## Définir votre email Git
git config --global user.email "labex@labex.io"

Cette étape garantit que tous vos commits seront enregistrés avec votre nom d'utilisateur et votre email, facilitant ainsi le suivi des modifications.

Créez un fichier pour tester le processus de commit :

## Créer un document de test
echo "I am Labex Readme Doc" > readme.md

Cette commande crée un simple fichier texte nommé readme.md contenant un message d'exemple, que nous utiliserons pour tester le processus de commit et de push vers le dépôt distant.

Valider et pousser les modifications

Après avoir initialisé le dépôt et configuré Git, il est temps de commiter et de pousser vos premiers changements.

## Ajouter tous les changements à la zone de staging (index)
git add .

## Commiter les changements
git commit -m "Initial commit"

## Ajouter le dépôt distant
git remote add origin labex-git@localhost:/home/labex-git/project.git

Maintenant, nous pouvons pousser les changements vers le dépôt distant.

git push origin master

Vérification de la configuration

Enfin, clonons le dépôt pour nous assurer que vos commits sont correctement hébergés sur le serveur distant.

## Naviguer vers le répertoire de clonage
cd /home/labex/project

## Cloner le dépôt
git clone labex-git@localhost:/home/labex-git/project.git

Vous pouvez constater qu'un nouveau dépôt a été cloné dans le chemin /home/labex/project, ainsi que le fichier readme.md qu'il contient.

Résumé

Dans ce laboratoire, vous avez appris à configurer un serveur Git sur un système Linux, à gérer les clés SSH et à effectuer des opérations Git typiques telles que l'initialisation de dépôts, la validation des changements et leur envoi vers un serveur distant. Cet exercice a démontré le cycle de vie complet de la configuration et de l'utilisation d'un serveur Git, vous fournissant une base solide pour gérer vos propres dépôts de code en toute sécurité. Les compétences acquises ici sont non seulement fondamentales pour le développement logiciel, mais améliorent également votre compréhension du contrôle de version de projet dans un environnement privé et sécurisé.

✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer