Configurer le serveur GIT avec HTTP sur CentOS 8

Configurer le serveur GIT avec HTTP sur CentOS 8
Dans cet article, je vais vous montrer comment configurer le serveur HTTP Git Smart sur CentOS 8 pour l'hébergement de vos référentiels Git en privé. Alors, commençons.

Installation du serveur GIT et Apache HTTP:

Tout d'abord, mettez à jour le cache du référentiel de package CENTOS 8 avec la commande suivante:

$ sudo dnf makecache

Maintenant, installez les outils Git, Apache HTTP Server et Apache avec la commande suivante:

$ sudo dnf installer git httpd httpd-tools

Maintenant, appuyez sur Y Et puis appuyez sur Pour confirmer l'installation.

Git, Apache et les outils Apache requis doivent être installés.

Configuration du serveur Apache HTTP:

Dans cette section, je vais vous montrer comment configurer le serveur Apache pour accéder aux référentiels GIT sur le protocole HTTP.

Tout d'abord, créez un nouveau fichier de configuration / etc / httpd / confre.d / git.confli avec la commande suivante:

$ sudo vi / etc / httpd / confre.d / git.confli

Maintenant, ajoutez les lignes suivantes au fichier de configuration / etc / httpd / confre.d / git.confli:


Setenv git_project_root / var / www / git
Setenv git_http_export_all
Documentroot / var / www / git
Scriptalias / / usr / libexec / git-core / git-http-backend /

Options + EXECCGI -MultiViews + SymLinkSifownMatch
Autoverride Aucun
Exiger tous les accords


Dav sur
Les index d'options suivent
Autoverride Aucun
Exiger tous les accords

Le fichier de configuration final doit ressembler comme suit. Maintenant, enregistrez le fichier de configuration.

Maintenant, créez le Git_project_root annuaire / var / www / git avec la commande suivante:

$ sudo mkdir / var / www / git

Maintenant, configurez selinux pour le / var / www / git Répertoire avec la commande suivante:

$ sudo semanage fcontext -m -t httpd_sys_rw_content_t
"/ var / www / git (/.*)?"

Pour que les modifications de Selinux prennent effet, exécutez la commande suivante:

$ sudo restorecon -rv / var / www / git

Maintenant, redémarrez le service APACH HTTP Server avec la commande suivante:

$ sudo systemctl redémarrer httpd

Ajoutez également le service APACH HTTP Server au démarrage du système CentOS 8 avec la commande suivante:

$ sudo systemctl activer httpd

Maintenant, permettez le port HTTP (80) via le fichier Wall avec la commande suivante:

$ sudo Firewall-CMD --Add-Service = HTTP - Permanent

Pour que les changements prennent effet, rechargez le pare-feu comme suit:

$ sudo Firewall-CMD - Reload

Rédaction d'un script pour créer des référentiels GIT accessibles HTTP plus facilement:

Pour faciliter la création de référentiels Git accessibles HTTP, j'ai écrit un simple script de shell que vous pouvez utiliser pour économiser beaucoup de votre temps précieux.

Si vous souhaitez utiliser mon script, créez un nouveau fichier dans le chemin / usr / sbin / git-crat-repo avec la commande suivante:

$ sudo vi / usr / sbin / git-créate-repo

Puis saisissez les lignes de codes suivantes dans le fichier nouvellement créé / usr / sbin / git-crat-repo.

#!/ bac / bash
Git_dir = "/ var / www / git"
Repo_name = 1 $
mkdir -p "$ git_dir / $ repo_name.git "
cd "$ git_dir / $ repo_name.git "
git init --bare &> / dev / null
toucher git-daemon-export-ok
CP CP / post-mise à jour.Exemples de crochets / post-mise à jour
git config http.reçoire-toi vrai
git config http.uploadPack True
Git Update-Server-Info
chown -rf apache: apache "$ git_dir / $ repo_name.git "
echo "git Repository '$ repo_name' créé dans $ git_dir / $ repo_name.git "

C'est à quoi ressemble le script de shell final. Une fois que vous avez terminé, enregistrez le fichier.

Maintenant, ajoutez une autorisation exécutable au script shell / usr / sbin / git-créate-repo avec la commande suivante:

$ sudo chmod + x / usr / sbin / git-créate-repo

Créer des référentiels GIT accessibles à HTTP:

Maintenant, vous pouvez créer un nouveau référentiel GIT accessible HTTP (appelons-le test) avec la commande suivante:

$ sudo git-créate-repo

Un nouveau référentiel GIT accessible HTTP test devrait être mis en caisse.

Accéder aux référentiels GIT depuis le serveur GIT:

Pour accéder aux référentiels GIT que vous avez créés sur votre serveur CentOS 8 GIT, vous avez besoin de cette adresse IP du serveur CentOS 8 GIT et du nom du référentiel GIT.

L'administrateur GIT Server peut trouver l'adresse IP du serveur GIT avec la commande suivante:

$ nmcli

Dans mon cas, l'adresse IP est 192.168.20.129. Ce sera différent pour vous. Alors, assurez-vous de le remplacer par le vôtre à partir de maintenant.

Une fois que l'administrateur du serveur GIT a trouvé l'adresse IP, il peut l'envoyer aux utilisateurs / développeurs qui utiliseront les référentiels Git hébergés sur le serveur GIT. Ensuite, les utilisateurs / développeurs peuvent accéder aux référentiels GIT souhaités.

Par exemple, si bob veut cloner le référentiel git test À partir du serveur GIT, il peut le faire comme suit:

$ git clone http: // 192.168.20.129 / test.git

Le référentiel Git test devrait être cloné à partir du serveur GIT.

Un nouveau répertoire test/ devrait être créé dans le répertoire de travail actuel de Bob.

Maintenant, Bob peut naviguer vers le test/ Répertoire comme suit:

$ cd test /

Maintenant, Bob crée un nouveau fichier message.SMS Dans le référentiel Git.

$ echo 'bonjour de Linuxhint' >> Message.SMS

Bob commet les changements.

$ git add .
$ git commit -m 'initial commit'

Bob confirme si les modifications ont été engagées dans le référentiel.

$ Git Log --Oneline

Maintenant, Bob télécharge les modifications au serveur GIT.

$ git push origine

Un autre développeur (disons bousculade) Qui veut contribuer au test Le référentiel Git peut également cloner le test Référentiel du serveur GIT.

$ git clone http: // 192.168.20.129 / test.git

Shovon navigue vers le test/ annuaire.

$ cd test /

Shovon trouve l'engagement que Bob a fait.

Maintenant, Shovon change le message.fichier txt.

$ echo 'shovon a ajouté de nouveaux textes' >> Message.SMS

Commet les changements.

$ git add .
$ git commit -m 'a ajouté un nouveau message'

Shovon confirme si les modifications ont été engagées dans le référentiel.

$ Git Log --Oneline

Shovon télécharge les modifications au serveur GIT.

$ git push origine

Maintenant, Bob tire les modifications du serveur GIT.

$ git pull

Bob trouve le nouvel engagement.

$ Git Log --Oneline

Bob trouve les modifications que Shovon a apportées au message.fichier txt.

C'est ainsi que vous pouvez utiliser les référentiels GIT à partir du serveur GIT HTTP.

Ajout d'authentification utilisateur au serveur GIT:

Si vous souhaitez ajouter une authentification de l'utilisateur aux référentiels GIT larges du serveur ou à des référentiels GIT spécifiques, consultez l'article Configurer le serveur Git avec HTTP sur Ubuntu.

C'est donc ainsi que vous configurez Git Smart HTTP Server sur CentOS 8 et utilisez des référentiels GIT à partir du serveur GIT. Merci d'avoir lu cet article.