安装和使用GitLab

更新时间:

本文介绍如何在Linux系统的ECS实例上安装GitLab,及其常见的使用教程。

准备工作

请确保您已创建一台ECS实例,并且ECS实例必须满足以下条件:

  • 实例已分配公网IP地址或绑定弹性公网IP(EIP)。具体操作,请参见绑定EIP

  • 实例规格:安装GitLab所需的实例规格与项目规模和团队规模有关,建议最小规格为4 vCPU、8 GiB。更多信息,请参见Installation system requirements

    重要

    低于4 vCPU、8 GiB会因规格过小导致安装失败。请升级规格以后再安装,升级规格操作,请参见升降配方式概述

  • 操作系统:Linux系统。具体支持的系统说明,请参见Supported OSes

  • 已在安全组内添加入方向规则放行80、443、22端口。具体操作,请参见添加安全组规则

安装GitLab

Alibaba Cloud Linux 3(极狐GitLab)

  • 如果您的操作系统为Alibaba Cloud Linux 3,使用安装包方式安装时,仅支持安装极狐GitLab。

  • 如果您想要在Alibaba Cloud Linux 3系统上安装社区版本GitLab,请使用Docker Engine方式,Docker Engine方式对操作系统没有限制。

  • 如果您想要在其他操作系统上使用安装包方式安装社区版GitLab,请参见Ubuntu/Debian(社区版GitLab)

  1. 远程连接需要安装GitLab的ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 安装GitLab所需的依赖包。

    sudo yum install -y curl python3-policycoreutils openssh-server
  3. 启动SSH服务并设置SSH服务为开机自启动。

    sudo systemctl start sshd
    sudo systemctl enable sshd
  4. (可选)安装并配置Postfix。

    Postfix用于GitLab发送电子邮件通知。如果您想使用其他解决方案发送电子邮件,请跳过此步骤并在安装GitLab后配置外部SMTP服务器。具体操作,请参见配置外部 SMTP 服务器

    1. 安装Postfix。

      sudo yum install -y postfix

      如果提示类似以下报错信息,请执行rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022命令后,重新安装Postfix。

      Falling package is :mysql-community-libs-compat-5.7.41-1.el7.x86_64
      GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    2. 启动Postfix并设置Postfix为开机自启动。

      sudo systemctl start postfix
      sudo systemctl enable postfix
  5. 添加GitLab软件包仓库。

    curl -fsSL https://get.gitlab.cn | sudo /bin/bash
    说明

    由于网络原因,可能会出现无法添加GitLab软件源镜像的问题,建议您多尝试几次。

    当出现类似如下回显信息,表示GitLab软件包仓库已安装。

    image.png

  6. 安装GitLab。

    sudo EXTERNAL_URL=<GitLab服务器的公网IP地址> yum install -y gitlab-jh

    <GitLab服务器的公网IP地址>请替换成安装GitLab的实例公网IP地址,示例命令如下:

    sudo EXTERNAL_URL=101.132.XX.XX yum install -y gitlab-jh
    重要

    GitLab会因为实例规格较低,导致长时间处于Installing状态或安装失败,建议升级规格到4 vCPU、8 GiB以后再安装。

    当出现类似如下回显信息,表示GitLab已经安装成功。

    image.png

Ubuntu/Debian(社区版GitLab)

社区版GitLab不支持Alibaba Cloud Linux 3,本操作以Ubuntu/Debian系统为例进行说明,其他操作系统安装说明,请参见安装社区版GitLab

  1. 远程连接需要安装GitLab的ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 安装GitLab所需的依赖包。

    sudo apt-get update
    sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
  3. 启动SSH服务并设置SSH服务为开机自启动。

    sudo systemctl start sshd
    sudo systemctl enable sshd
  4. (可选)安装并配置Postfix。

    Postfix用于GitLab发送电子邮件通知。如果您想使用其他解决方案发送电子邮件,请跳过此步骤并在安装GitLab后配置外部SMTP服务器。具体操作,请参见配置外部 SMTP 服务器

    1. 安装Postfix。

      sudo apt-get install -y postfix
    2. 启动Postfix并设置Postfix为开机自启动。

      sudo systemctl start postfix
      sudo systemctl enable postfix
  5. 添加GitLab软件包仓库。

    sudo curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
    说明

    由于网络原因,可能会出现无法添加GitLab软件源镜像的问题,建议您多尝试几次。

    当出现类似如下回显信息,表示GitLab软件包仓库已安装。

    image

  6. 刷新软件包列表。

    sudo apt-get update
  7. 安装GitLab。

    sudo EXTERNAL_URL=<GitLab服务器的公网IP地址> apt-get install -y gitlab-ce

    <GitLab服务器的公网IP地址>请替换成安装GitLab的实例公网IP地址,示例命令如下:

    sudo EXTERNAL_URL=101.132.XX.XX apt-get install -y gitlab-ce
    重要

    GitLab会因为实例规格较低而导致长时间处于Installing状态时,请耐心等待安装完成。

    当出现类似如下回显信息,表示GitLab已经安装成功。

    image

Docker Engine安装GitLab

  1. 远程连接需要安装GitLab的ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 安装Docker。

    具体操作,请参见安装Docker

  3. 配置镜像加速服务。

    由于运营商网络原因,会导致您拉取Docker Hub镜像变慢,甚至下载失败。您可以使用阿里云容器镜像服务ACR提供的官方镜像加速器,加速官方镜像的下载。具体操作,请参见官方镜像加速

  4. 创建Docker容器的挂载数据目录。

     sudo mkdir -p /srv/gitlab 
  5. 设置环境变量$GITLAB_HOME

    export GITLAB_HOME=/srv/gitlab
  6. 执行如下命令,拉取GitLab镜像。

    sudo docker pull gitlab/gitlab-ce

    当界面回显如下所示时,说明GitLab镜像已拉取成功。

    image.png

  7. 执行如下命令,安装GitLab容器镜像。

    说明
    • hostname:指定的主机名,建议修改为当前ECS实例的IP地址。

    • publish 443:443:将容器的443端口映射到主机的443端口(HTTPS访问)。

    • publish 8080:80:将容器的80端口映射到主机的8080端口(HTTP访问)。

    • publish 5000:22:将容器的22端口映射到主机的5000端口(公开SSH服务)。

    ECS实例所在安全组入方向规则必须同时放行443、8080、5000端口。

    sudo docker run --detach \
      --hostname gitlab.example.com \
      --publish 443:443 --publish 8080:80 --publish 5000:22 \
      --name gitlab \
      --restart always \
      --volume $GITLAB_HOME/config:/etc/gitlab \
      --volume $GITLAB_HOME/logs:/var/log/gitlab \
      --volume $GITLAB_HOME/data:/var/opt/gitlab \
      --shm-size 256m \
      gitlab/gitlab-ce:latest
  8. 查看容器状态。

    sudo docker ps -a

    当容器状态为healthy时,说明GitLab容器已经正常启动。

    image.png

使用GitLab

本操作以如何使用社区版GitLab进行介绍,使用极狐GitLab的操作类似。

登录GitLab

  1. 获取GitLab的登录密码。

    • Linux安装包方式:sudo cat /etc/gitlab/initial_root_password

    • Docker Engine安装方式:sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

    回显信息类似如下所示,您可以在Password后获取GitLab的初始登录密码。

    重要

    出于安全原因,24小时后,该文件会被自动删除,建议您安装成功,首次登录之后,立即修改初始密码。

    image.png

  2. 登录GitLab。

    • Linux安装包方式:在浏览器的地址栏中,输入http://ECS实例的公网IP即可进入GitLab的登录界面。

    • Docker Engine安装方式:在浏览器的地址栏中,输入http://ECS实例的公网IP:8080即可进入GitLab的登录界面。

    首次登录使用用户名root,密码为步骤1获取的密码。asda5

生成密钥对文件并获取公钥

  1. 安装Git工具。

    sudo yum install git
  2. 生成密钥对文件id_rsa

    ssh-keygen

    生成密钥对的过程中,系统会提示输入密钥对存放目录(默认为当前用户目录下的.ssh/id_rsa,例如/home/test/.ssh/id_rsa)和密钥对密码,您可以手动输入,也可以按Enter保持默认。

    回显信息类似如下所示。

    image.png

  3. 查看并复制公钥文件id_rsa.pub中的内容,便于后续步骤使用。

    cat .ssh/id_rsa.pub

    回显信息类似如下所示。

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQVwWjF3KXmI549jDI0fuCgl+syJjjn55iMUDRRiCd/B+9TwUda3l9WXH5i7RU53QGRCsDVFZxixLOlmXr9E3VSqkf8xXBnHs/5E2z5PIOCN0nxfB9xeA1db/QxPwK4gkHisep+eNHRn9x+DpCYDoSoYQN0nBg+H3uqfOqL42mJ+tqSfkyqbhjBf1kjtDTlBfVCWtI0siu7owm+c65+8KNyPlj5/0AyJ4Aqk1OX2jv+YE4nTipucn7rHwWuowasPU86l+uBsLNwOSb+H7loJvQyhEINX2FS1KnpRU+ld20t07n+N3ErfX5xBAGfxXpoN9BKKSP+RT7rvTeXTVE**** test@iZuf63zs0dn0qccsisy****

创建项目

  1. 在GitLab的主页中,单击Create a project

    ada55

  2. 单击Create blank project,设置Project nameProject URL,然后单击Create project

    本文以mywork项目为例进行说明。

    asda566

  3. 添加SSH key。

    1. 在当前project页面,单击Add SSH keysdaa

    2. 将公钥文件id_rsa.pub中的内容粘贴到Key所在的文本框中。asda

    3. 单击Add key

      SSH Key添加完成后,如下图所示。sda

  4. 复制Clone链接,该链接在进行克隆操作时需要使用。

    项目地址

使用GitLab

  1. 配置使用Git仓库的人员信息。

    1. 配置使用Git仓库的人员姓名。

      git config --global user.name "testname" 
    2. 配置使用Git仓库的人员邮箱。

      git config --global user.email "abc@example.com" 
  2. 克隆已创建的项目到本地。

    git clone git@101.132.XX.XX:root/mywork.git

    简单配置

  3. 上传文件到GitLab服务器。

    1. 进入到项目目录。

      cd mywork/ 
    2. 创建需要上传到GitLab中的目标文件。

      echo "test" > /home/test/test.sh
    3. 将目标文件或者目录复制到项目目录下。

      cp /home/test/test.sh ./ 
    4. test.sh文件加入到索引中。

      git add test.sh
    5. test.sh提交到本地仓库。

      git commit -m "test.sh"
    6. 将文件同步到GitLab服务器上。

      git push -u origin main

      文件同步命令

      在网页中查看上传的test.sh文件已经同步到GitLab服务器中。文件同步结果

相关文档

如果您想了解更多的GitLab操作,例如GitLab常用命令、数据备份、配置选项、用户管理、与其他服务集成、故障排除等,请参见GitLab官方文档