GitLab是Ruby开发的自托管的Git项目仓库,可通过Web界面访问公开的或者私人的项目。本教程介绍如何安装和使用GitLab。

前提条件

手动部署GitLab前,请确保您已创建一台ECS实例。要求如下:
  • 部署GitLab的实例要求至少使用2 vCPU和4 GiB内存的计算资源,本示例中,手动部署GitLab所使用的相关资源版本如下:
    • 实例规格:ecs.c6.large
    • 操作系统:CentOS 7.2 64位
    创建实例的具体操作,请参见使用向导创建实例
  • 已在安全组内添加入方向规则放行80端口。具体操作,请参见添加安全组规则

手动部署GitLab环境

  1. 安装依赖包。
    sudo yum install -y curl policycoreutils-python openssh-server
    说明 本教程中示例场景的操作系统为CentOS 7.2 64位。如果您使用CentOS 8系统的ECS实例, 运行以上命令将出现找不到依赖包policycoreutils-python的问题,原因是CentOS 8的软件源中没有包含该依赖包。该依赖包不影响部署GitLab,您可以忽略该问题继续运行下文中的命令。
  2. 依次运行以下命令,配置SSH服务。
    1. 启动SSH服务。
      sudo systemctl start sshd
    2. 设置SSH服务为开机自启动。
      sudo systemctl enable sshd
  3. 安装Postfix来发送通知邮件。
    sudo yum install postfix
  4. 设置Postfix开机自启动。
    sudo systemctl enable postfix
  5. 启动Postfix服务。
    1. 运行以下命令,打开main.cf文件。
      vim /etc/postfix/main.cf
    2. 找到如下图所示的代码,然后按i进入编辑模式。
      set_inet
    3. 将该行代码修改为inet_interfaces = all
    4. Esc退出编辑模式,然后输入:wq并回车,保存关闭文件。
    5. 运行以下命令,启动Postfix服务。
      sudo systemctl start postfix
  6. 添加GitLab软件包仓库。
    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
  7. 安装GitLab。
    sudo EXTERNAL_URL="GitLab服务器的公网IP地址" yum install -y gitlab-ce
    说明 您可从ECS管理控制台的实例与镜像 > 实例页面找到GitLab所属ECS实例的公网IP地址。
  8. 使用浏览器访问GitLab服务器的公网IP地址。
    返回页面如下图所示,表示环境搭建成功,并且您需要设置新密码。gitlab1

使用GitLab

  1. 登录GitLab。
    在浏览器的地址栏中,输入ECS服务器的公网IP即可进入GitLab的登录界面,首次登录使用用户名root,密码为首次访问GitLab时设置的新密码。gl2
    登录成功后界面如下。gl3
  2. 创建Project。
    1. 使用Linux自带的软件源安装Git工具。
      yum install git
      install_git
    2. 生成密钥文件。
      使用如下命令生成密钥文件.ssh/id_rsa
      ssh-keygen
      密钥使用如下命令查看公钥文件id_rsa.pub中的内容。在下一步操作中,您需要粘贴该内容到GitLab服务器的SSH-key的配置文件中。
      cat .ssh/id_rsa.pub
      公钥
    3. 在GitLab的主页中,单击New Project,新建一个Project。
      new_project
    4. 设置Project相关配置项,然后单击Create project
      new_project_2
    5. 添加SSH key。
      1. 单击add an SSH keyimport-sshkey-1
      2. 导入步骤2中生成的密钥文件内容。import-sshkey-2
      ssh key添加完成后,如下图所示。import-ssh-key-complete
    6. 保存项目地址,该地址在进行克隆操作时需要用到。
      项目地址
  3. 简单配置。
    1. 配置使用Git仓库的人员姓名。
      git config --global user.name "testname" 
    2. 配置使用Git仓库的人员email,填写自己的公司邮箱。
      git config --global user.email "abc@example.com" 
    3. 克隆项目,在本地生成同名目录,并且目录中会有所有的项目文件。
      git clone git@iZ****3Z:root/test.git
      简单配置
  4. 上传文件。
    1. 进入到项目目录。
      cd test/ 
    2. 创建需要上传到GitLab中的目标文件。
      echo "test" > /root/test.sh
    3. 将目标文件或者目录复制到项目目录下。
      cp /root/test.sh ./ 
      上传文件
    4. test.sh文件加入到索引中。
      git add test.sh
    5. test.sh提交到本地仓库。
      git commit -m "test.sh"
    6. 将文件同步到GitLab服务器上。
      git push -u origin master
      文件同步命令
      在网页中查看上传的test.sh文件已经同步到GitLab中。文件同步结果