Maison Opération et maintenance exploitation et maintenance Linux Comment configurer un référentiel de code local hautement disponible (tel que GitLab) sous Linux

Comment configurer un référentiel de code local hautement disponible (tel que GitLab) sous Linux

Jul 05, 2023 pm 06:27 PM
高可用 linux配置 代码仓库

Comment configurer un référentiel de code local hautement disponible (tel que GitLab) sur Linux

À mesure que le développement de logiciels et le travail d'équipe deviennent de plus en plus complexes, la demande de gestion de code et de contrôle de version augmente également. En tant que plateforme d'hébergement de code open source, GitLab est largement utilisé dans le développement collaboratif en équipe. Afin d'améliorer la fiabilité et la stabilité de l'entrepôt de code, nous pouvons configurer un entrepôt de code local hautement disponible afin qu'il puisse basculer automatiquement vers un serveur de sauvegarde en cas de panne d'un seul serveur, garantissant ainsi que le travail de l'équipe n'est pas affecté.

Cet article prendra comme exemple la configuration de GitLab sur un système Linux pour présenter comment implémenter un référentiel de code local hautement disponible.

1. Installez et configurez GitLab

  1. Installez GitLab

Il existe de nombreuses façons d'installer GitLab sur un système Linux. Ici, nous prenons CentOS comme exemple et utilisons yum pour l'installer.

Tout d'abord, ajoutez la source du logiciel GitLab :

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
Copier après la connexion

Ensuite, installez GitLab :

sudo yum install -y gitlab-ee
Copier après la connexion
  1. Configurer GitLab

Une fois l'installation terminée, nous devons effectuer certaines configurations de base sur GitLab, notamment la définition du compte administrateur et du mot de passe. , et lier les noms de domaine, etc.

Configurez en éditant le fichier de configuration /etc/gitlab/gitlab.rb : /etc/gitlab/gitlab.rb进行配置:

sudo vi /etc/gitlab/gitlab.rb
Copier après la connexion
Copier après la connexion

找到以下行,将其取消注释并修改为对应的值:

external_url 'http://yourdomain.com'
Copier après la connexion

保存并退出配置文件后,重新配置GitLab:

sudo gitlab-ctl reconfigure
Copier après la connexion
Copier après la connexion

二、配置高可用的本地代码仓库

为了实现高可用的本地代码仓库,我们需要设置一个主服务器和一个备用服务器,并通过负载均衡将流量分发到这两台服务器上。

下面是一个示例的配置,主服务器地址为192.168.0.1,备用服务器地址为192.168.0.2。

  1. 安装和配置负载均衡

在主服务器和备用服务器上都安装和配置一个负载均衡器。这里我们使用Nginx作为负载均衡器。

首先,安装Nginx:

sudo yum install -y nginx
Copier après la connexion

然后,编辑Nginx的配置文件/etc/nginx/nginx.conf

sudo vi /etc/nginx/nginx.conf
Copier après la connexion

在http模块中添加以下配置:

http {
    upstream gitlab {
        server 192.168.0.1:80 weight=5;
        server 192.168.0.2:80 weight=1 backup;
    }

    server {
        listen       80;
        server_name  yourdomain.com;

        location / {
            proxy_pass         http://gitlab;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   Host $http_host;
        }
    }
}
Copier après la connexion

保存并退出配置文件后,重新启动Nginx服务:

sudo systemctl restart nginx
Copier après la connexion
  1. 配置主服务器和备用服务器

在主服务器和备用服务器上都进行如下配置。

首先,编辑GitLab的配置文件/etc/gitlab/gitlab.rb

sudo vi /etc/gitlab/gitlab.rb
Copier après la connexion
Copier après la connexion

找到以下行,将其修改为对应的值:

external_url 'http://yourdomain.com'
gitlab_rails['gitlab_shell_ssh_port'] = 10022
Copier après la connexion

然后,关闭GitLab自带的Nginx服务,在/etc/gitlab/gitlab.rb添加以下行:

nginx['enable'] = false
Copier après la connexion

保存并退出配置文件后,重新配置GitLab:

sudo gitlab-ctl reconfigure
Copier après la connexion
Copier après la connexion

最后,修改SSH配置文件/etc/ssh/sshd_config,将SSH的监听端口改为10022:

sudo vi /etc/ssh/sshd_config
Copier après la connexion

找到以下行,将其修改为对应的值:

Port 10022
Copier après la connexion

保存并退出配置文件后,重新启动SSH服务:

sudo systemctl restart sshd
Copier après la connexion

三、测试高可用配置

完成以上配置后,我们可以进行一些测试来验证高可用的配置是否生效。

  1. 测试负载均衡

在浏览器中输入http://yourdomain.com,查看是否能够正常访问GitLab页面。刷新页面多次,确认每次访问到的是不同的服务器。

  1. 测试主备切换

在主服务器上停止GitLab服务:

sudo gitlab-ctl stop
Copier après la connexion

然后,再次在浏览器中输入http://yourdomain.comrrreee

Retrouvez la ligne suivante, décommentez-la et modifiez-la à la valeur correspondante :

rrreee

Enregistrez et quittez la configuration file Enfin, reconfigurez GitLab :

rrreee

2. Configurez un référentiel de code local hautement disponible 🎜🎜Afin d'obtenir un référentiel de code local hautement disponible, nous devons configurer un serveur principal et un serveur de sauvegarde, et distribuer le trafic vers ces deux grâce à l'équilibrage de charge sur un serveur. 🎜🎜Ce qui suit est un exemple de configuration, l'adresse du serveur principal est 192.168.0.1 et l'adresse du serveur de sauvegarde est 192.168.0.2. 🎜🎜🎜Installer et configurer l'équilibrage de charge 🎜🎜🎜Installez et configurez un équilibreur de charge sur les serveurs principal et de sauvegarde. Ici, nous utilisons Nginx comme équilibreur de charge. 🎜🎜Tout d'abord, installez Nginx : 🎜rrreee🎜Ensuite, éditez le fichier de configuration de Nginx /etc/nginx/nginx.conf : 🎜rrreee🎜Ajoutez la configuration suivante dans le module http : 🎜rrreee🎜Enregistrez et quittez Après avoir configuré le fichier, redémarrez le service Nginx : 🎜rrreee🎜🎜Configurez le serveur principal et le serveur de sauvegarde🎜🎜🎜Configurez les éléments suivants sur le serveur principal et le serveur de sauvegarde. 🎜🎜Tout d'abord, éditez le fichier de configuration de GitLab /etc/gitlab/gitlab.rb : 🎜rrreee🎜Trouvez la ligne suivante et modifiez-la avec la valeur correspondante : 🎜rrreee🎜Ensuite, fermez le service Nginx de GitLab, ajoutez la ligne suivante dans /etc/gitlab/gitlab.rb : 🎜rrreee🎜Après avoir enregistré et quitté le fichier de configuration, reconfigurez GitLab : 🎜rrreee🎜Enfin, modifiez le fichier de configuration SSH / etc /ssh/sshd_config, changez le port d'écoute SSH en 10022 : 🎜rrreee🎜Recherchez la ligne suivante et modifiez-la à la valeur correspondante : 🎜rrreee🎜Après avoir enregistré et quitté le fichier de configuration, redémarrez le service SSH : 🎜 rrreee 🎜3. Testez la configuration haute disponibilité🎜🎜Après avoir terminé la configuration ci-dessus, nous pouvons effectuer quelques tests pour vérifier si la configuration haute disponibilité prend effet. 🎜🎜🎜Test de l'équilibrage de charge🎜🎜🎜Entrez http://votredomaine.com dans le navigateur pour voir si vous pouvez accéder normalement à la page GitLab. Actualisez la page plusieurs fois pour confirmer que vous accédez à un serveur différent à chaque fois. 🎜🎜🎜Test de la commutation actif/veille🎜🎜🎜Arrêtez le service GitLab sur le serveur principal : 🎜rrreee🎜Entrez ensuite à nouveau http://votredomaine.com dans le navigateur pour confirmer s'il passe automatiquement à serveur de secours. 🎜🎜Grâce aux tests ci-dessus, nous pouvons confirmer que le référentiel de code local hautement disponible a été configuré avec succès et efficace. 🎜🎜Lors de la configuration d'un référentiel de code local hautement disponible, nous avons utilisé des outils tels que GitLab et Nginx et effectué des configurations pertinentes. Grâce à ces configurations, nous avons réussi à configurer un entrepôt de code local hautement disponible sur le système Linux. De cette façon, même en cas de panne du serveur principal, le serveur de sauvegarde peut prendre le relais, garantissant que le travail de l'équipe ne soit pas affecté et améliorant la fiabilité et la stabilité de l'entrepôt de code. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution Golang pour la mise en œuvre de systèmes distribués hautement disponibles Solution Golang pour la mise en œuvre de systèmes distribués hautement disponibles Jan 16, 2024 am 08:17 AM

Golang est un langage de programmation efficace, concis et sûr qui peut aider les développeurs à mettre en œuvre des systèmes distribués hautement disponibles. Dans cet article, nous explorerons comment Golang implémente des systèmes distribués hautement disponibles et fournirons quelques exemples de code spécifiques. Défis des systèmes distribués Un système distribué est un système dans lequel plusieurs participants collaborent. Les participants à un système distribué peuvent être différents nœuds répartis sous plusieurs aspects tels que l'emplacement géographique, le réseau et la structure organisationnelle. Lors de la mise en œuvre d'un système distribué, de nombreux défis doivent être relevés, tels que :

Linux et Docker : Comment implémenter un cluster de conteneurs hautement disponible ? Linux et Docker : Comment implémenter un cluster de conteneurs hautement disponible ? Jul 29, 2023 pm 07:54 PM

Linux et Docker : Comment implémenter un cluster de conteneurs hautement disponible ? Résumé : Avec le développement de la technologie des conteneurs, de plus en plus d'entreprises déploient progressivement des applications dans des conteneurs. Dans un environnement de production, il est essentiel d'obtenir une haute disponibilité pour un cluster de conteneurs. Cet article expliquera comment utiliser Linux et Docker pour créer un cluster de conteneurs hautement disponible et démontrera la méthode d'implémentation spécifique à travers des exemples de code. Construire un cluster DockerSwarm DockerSwarm est une gestion native de cluster de conteneurs fournie par Docker

Configurer les systèmes Linux pour prendre en charge le développement de robots intelligents et d'équipements d'automatisation Configurer les systèmes Linux pour prendre en charge le développement de robots intelligents et d'équipements d'automatisation Jul 05, 2023 am 11:46 AM

Configuration des systèmes Linux pour prendre en charge le développement de robots intelligents et d'équipements d'automatisation Les robots intelligents et les équipements d'automatisation jouent un rôle important dans le domaine de la technologie moderne. Ils peuvent aider les gens à effectuer des travaux lourds, dangereux ou répétitifs et à améliorer l'efficacité de la production et la qualité du travail. En tant que développeur, pour prendre en charge le développement de ces applications, vous devez configurer le système Linux pour exécuter et gérer correctement ces robots intelligents et équipements d'automatisation. Cet article présentera comment configurer un système Linux pour prendre en charge le développement de robots intelligents et d'équipements d'automatisation, et attacher

Construire un système de stockage distribué hautement disponible : pratique de développement de langage Go Construire un système de stockage distribué hautement disponible : pratique de développement de langage Go Nov 20, 2023 pm 12:03 PM

Avec le développement rapide d’Internet, de plus en plus de données doivent être stockées et traitées. Afin de garantir la sécurité et la fiabilité des données, les systèmes de stockage distribués deviennent de plus en plus importants. Cet article présentera comment utiliser le langage Go pour développer un système de stockage distribué hautement disponible et explorera certains des concepts et technologies clés dans la pratique. Avant de commencer, comprenons d'abord les principes de base des systèmes de stockage distribués. Un système de stockage distribué est composé de plusieurs nœuds de stockage et chaque nœud stocke indépendamment une partie des données. Afin d'assurer une haute disponibilité des données, le système

Utiliser le langage Go pour développer un système d'orchestration de conteneurs hautement disponible Utiliser le langage Go pour développer un système d'orchestration de conteneurs hautement disponible Nov 20, 2023 am 08:40 AM

Avec le développement rapide de la technologie du cloud computing et de la conteneurisation, les systèmes d'orchestration de conteneurs sont devenus un élément important du déploiement et de la gestion des applications modernes. Le système d'orchestration de conteneurs peut planifier, déployer et gérer automatiquement plusieurs conteneurs, offrant ainsi une haute disponibilité et une évolutivité. Parmi les nombreux langages de programmation, le langage Go a reçu une large attention en raison de ses puissantes fonctionnalités de concurrence et de ses hautes performances, et est utilisé par de nombreux systèmes d'orchestration de conteneurs bien connus tels que Docker et Kubernetes. Cet article explique comment utiliser le langage Go pour développer un système d'orchestration de conteneurs hautement disponible.

Comment obtenir une haute disponibilité et un équilibrage de charge en Java Comment obtenir une haute disponibilité et un équilibrage de charge en Java Oct 09, 2023 pm 09:13 PM

Comment obtenir une haute disponibilité et un équilibrage de charge en Java À l'ère d'Internet d'aujourd'hui, la haute disponibilité et l'équilibrage de charge sont l'un des éléments clés dans la construction d'un système stable et fiable. En tant que langage de programmation largement utilisé, Java dispose d'une multitude de bibliothèques et d'outils qui peuvent nous aider à atteindre une haute disponibilité et un équilibrage de charge. Cet article explique comment implémenter la haute disponibilité et l'équilibrage de charge en Java et fournit des exemples de code spécifiques. 1. Haute disponibilité La haute disponibilité signifie que le système peut maintenir un fonctionnement stable pendant une longue période, quelles que soient les circonstances. En Java, vous pouvez

Comment créer un cluster MySQL hautement disponible à l'aide d'une architecture de base de données distribuée Comment créer un cluster MySQL hautement disponible à l'aide d'une architecture de base de données distribuée Aug 02, 2023 pm 04:29 PM

Comment utiliser l'architecture de base de données distribuée pour créer un cluster MySQL hautement disponible Avec le développement d'Internet, la demande de haute disponibilité et d'évolutivité des bases de données devient de plus en plus élevée. L'architecture de bases de données distribuées est devenue l'un des moyens efficaces de répondre à ces besoins. Cet article explique comment utiliser une architecture de base de données distribuée pour créer un cluster MySQL hautement disponible et fournit des exemples de code pertinents. Construire un cluster de réplication maître-esclave MySQL La réplication maître-esclave MySQL est la solution de base à haute disponibilité fournie par MySQL. Grâce à la réplication maître-esclave, les données peuvent être

Comment configurer une passerelle NAT hautement disponible sous Linux Comment configurer une passerelle NAT hautement disponible sous Linux Jul 05, 2023 am 11:03 AM

Comment configurer une passerelle NAT hautement disponible sous Linux Résumé : La traduction d'adresses réseau (NAT) est une technologie réseau courante utilisée pour traduire l'adresse IP d'un réseau privé en adresse IP d'un réseau public. Sur les systèmes Linux, la configuration d'une passerelle NAT hautement disponible peut améliorer la disponibilité et la fiabilité du réseau. Cet article explique comment utiliser les outils Keepalived et iptables pour configurer une passerelle NAT hautement disponible sous Linux. Mots clés : NAT, haute disponibilité, Keepalived, i

See all articles