centos

在CentOS上部署GitLab的最佳实践

小樊
31
2025-02-22 18:57:18
栏目: 智能运维

在CentOS上部署GitLab是一个相对复杂的过程,但遵循最佳实践可以确保其稳定性和安全性。以下是一个详细的步骤指南:

准备工作

  1. 更新系统

    sudo yum update -y
    
  2. 安装依赖项

    sudo yum install -y curl policycoreutils openssh-server openssh-clients postfix
    
  3. 安装数据库(推荐使用PostgreSQL或MySQL):

    • PostgreSQL

      sudo yum install -y postgresql-server postgresql
      sudo systemctl start postgresql
      sudo systemctl enable postgresql
      sudo -u postgres psql
      CREATE DATABASE gitlab;
      CREATE USER gitlab WITH PASSWORD 'gitlab';
      GRANT ALL PRIVILEGES ON DATABASE gitlab TO gitlab;
      \q
      
    • MySQL

      sudo yum install -y mariadb-server mariadb
      sudo systemctl start mariadb
      sudo systemctl enable mariadb
      sudo mysql_secure_installation
      
  4. 配置邮件服务器(如需要):

    • 安装并配置Postfix:
      sudo yum install -y postfix
      sudo systemctl enable postfix
      sudo systemctl start postfix
      

安装GitLab

  1. 添加GitLab仓库

    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    
  2. 安装GitLab

    sudo EXTERNAL_URL="http://your-gitlab-domain.com" yum install -y gitlab-ce
    

配置GitLab

  1. 配置文件

    sudo vi /etc/gitlab/gitlab.rb
    
    • 修改external_url为你的公网IP地址或域名。
    • 配置数据库连接信息(如果使用MySQL):
      gitlab_rails['db_host'] = "localhost"
      gitlab_rails['db_user'] = "gitlab"
      gitlab_rails['db_password'] = "gitlab"
      gitlab_rails['db_name'] = "gitlab"
      
  2. 重新配置并启动GitLab

    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    

安全设置

  1. 配置防火墙

    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --reload
    
  2. 配置SSH访问

    • 生成SSH密钥并添加到GitLab:
      ssh-keygen -t rsa -C "your_email@example.com"
      cat ~/.ssh/id_rsa.pub | ssh gitlab "sudo gitlab-rails 'create_user'"
      

使用Docker部署GitLab(可选)

如果你希望简化安装过程,可以使用Docker:

  1. 安装Docker和Docker Compose

    sudo yum install -y docker
    sudo yum install -y docker-compose
    sudo systemctl start docker
    sudo systemctl enable docker
    
  2. 创建docker-compose.yml文件

    version: '3'
    services:
      web:
        image: gitlab/gitlab-ce:latest
        restart: always
        hostname: your-gitlab-domain.com
        environment:
          GITLAB_OMNIBUS_CONFIG: external_url 'http://your-gitlab-domain.com'
        ports:
          - "80:80"
          - "443:443"
          - "22:22"
        volumes:
          - /var/opt/gitlab:/var/opt/gitlab
          - /var/log/gitlab:/var/log/gitlab
          - /etc/gitlab:/etc/gitlab
        shm-size: 256m
    
  3. 启动GitLab

    docker-compose up -d
    

持续集成/持续部署(CI/CD)

利用GitLab的CI/CD功能,编写.gitlab-ci.yml文件来自动化构建、测试和部署流程,提升开发效率和代码质量。

监控和维护

通过以上步骤,你可以在CentOS上成功部署并配置GitLab,确保其稳定性和安全性。如果有任何问题,可以参考GitLab的官方文档或寻求社区帮助。

0
看了该问题的人还看了