Android

Comment configurer un serveur git

Apprendre Git avancé | Mise en place du serveur

Apprendre Git avancé | Mise en place du serveur

Table des matières:

Anonim

En ce qui concerne l'hébergement Git, vous disposez d'un certain nombre d'options. GitHub, Gitlab et Bitbucket sont des solutions populaires, mais exécuter votre propre serveur Git est une alternative à considérer.

La configuration d'un serveur Git vous permet de créer des référentiels privés sans les restrictions des plans gratuits des fournisseurs.

Dans ce guide, nous expliquons comment configurer un serveur Git nu sous Linux. Cette configuration est bonne si vous avez peu de référentiels et que les collaborateurs sont technophiles. Sinon, vous devriez envisager d'installer une application git auto-hébergée telle que Gitea, Gogs ou Gitlab.

Le serveur Git peut être configuré sur n'importe quelle machine Linux distante ou même sur votre système local.

Configuration du serveur Git

La première étape consiste à installer Git sur votre serveur.

sudo apt update && sudo apt install git

Pour installer le package git sur les serveurs CentOS, tapez:

sudo yum install git

Ensuite, créez un nouvel utilisateur qui gérera les référentiels Git:

sudo useradd -r -m -U -d /home/git -s /bin/bash git

Le répertoire personnel de l'utilisateur est défini sur /home/git . Tous les référentiels seront stockés sous ce répertoire. Nous n'avons pas défini de mot de passe pour l'utilisateur «git», la connexion ne sera possible qu'en utilisant les clés ssh.

Passez à l'utilisateur «git» à l'aide de la commande su :

sudo su - git

Exécutez les commandes suivantes pour créer le répertoire SSH et définir les autorisations appropriées:

mkdir -p ~/.ssh && chmod 0700 ~/.ssh

Créez un fichier nommé ~/.ssh/authorized_keys qui contiendra les clés SSH des utilisateurs autorisés:

touch ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys

C'est ça. La configuration du serveur est terminée. Vous êtes maintenant prêt à créer votre premier référentiel Git.

Exécutez la commande suivante pour lancer un nouveau référentiel vide:

git init --bare ~/projectname.git

Vous pouvez nommer le répertoire comme vous le souhaitez. L'important est de créer le référentiel sous le répertoire personnel de l'utilisateur «git».

Initialized empty Git repository in /home/git/projectname.git/

Configuration du référentiel Git local

Pour pouvoir envoyer les modifications git locales au serveur Git, vous devez ajouter la clé publique SSH de votre utilisateur local au fichier authorized_keys l'utilisateur "git" distant.

cat ~/.ssh/id_rsa.pub

La sortie doit ressembler à ceci:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDd/mnMzHwjUzK8g3ldfsfRpJuC16mhWamaXRk8ySQrD/dzpbRLfDnZsLxCzRoq+ZzFHGwcQlJergtergdHGRrO8FE5jl3IWRRp+mP12qYw== [email protected]

Pour générer une nouvelle paire de clés SSH, utilisez la commande suivante:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Copiez la sortie de la commande cat ci-dessus et revenez à la console du serveur Git.

Sur le serveur, ouvrez votre éditeur de texte et collez la clé publique que vous avez copiée depuis votre ordinateur local dans le fichier ~/.ssh/authorized_keys :

sudo nano /home/git/.ssh/authorized_keys

L'ensemble du texte de la clé publique doit être sur une seule ligne.

Nous supposons que le package Git est déjà installé sur votre machine locale. Sinon, installez-le de la même manière que expliqué dans les sections précédentes.

cd /path/to/local/project

Initialisez un référentiel git:

git init.

La dernière étape consiste à ajouter la télécommande git à votre référentiel local:

git remote add origin git@git_server_ip:projectname.git

N'oubliez pas de remplacer git_server_ip par le nom d'hôte ou l'adresse IP de votre serveur Git.

Pour vérifier que tout est correctement configuré, créez un fichier de test:

touch test_file

Ajoutez les modifications à la zone de transit:

git add.

Validez les modifications:

git commit -m "descriptive message"

Poussez les modifications du référentiel local vers un référentiel distant:

git push -u origin master

Si tout est correctement configuré, la sortie devrait ressembler à ceci:

Counting objects: 3, done. Writing objects: 100% (3/3), 218 bytes | 218.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To git_server_ip:projectname.git * master -> master Branch 'master' set up to track remote branch 'master' from 'origin'.

Pour ajouter un nouveau collaborateur, copiez simplement sa clé SSH publique dans le fichier ~/.ssh/authorized_keys utilisateur «git».

Vous pouvez utiliser les mêmes étapes pour créer de nouveaux référentiels. Il est important de noter que le référentiel distant doit exister avant d'ajouter la télécommande git à votre référentiel local.

Conclusion

Dans ce didacticiel, nous vous avons montré comment configurer votre propre serveur Git privé et créer des référentiels.