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

前提条件

使用本教程进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册

您已创建部署GitLab的实例,要求如下:
  • 部署GitLab的实例要求至少使用2个vCPU和4GiB的内存。
  • 已添加如下表所示的安全组规则。具体步骤,请参见添加安全组规则
    方向 协议/应用 端口/范围 源地址
    入方向 HTTP(80) 80 0.0.0.0/0

使用镜像部署GitLab环境

完成以下操作,使用镜像部署GitLab环境:

  1. 进入GitLab代码管理(Centos 64位 | GitLab)镜像详情页面,单击立即购买,然后按界面提示完成配置选型并购买ECS实例。实例配置详情,请参见使用向导创建实例
  2. 远程连接ECS实例。连接方式请参见连接方式导航
  3. 运行/alidata目录下的gitlab_opennet.sh脚本,开启远程访问。
    注意 GitLab镜像部署成功后默认禁止远程访问。您需要开启远程访问,才能通过ECS服务器的公网IP地址访问GitLab的登录界面。更多详情,请参见镜像帮助文档
  4. 登录ECS管理控制台
  5. 在左侧导航栏,单击实例与镜像 > 实例
  6. 在顶部状态栏处,选择地域。
  7. 实例列表页面,找到所购ECS实例,并在IP 地址列获取该实例的公网IP地址。
  8. 在浏览器地址栏输入公网IP地址,访问GitLab主页。

手动部署GitLab环境

完成以下操作,手动部署GitLab环境:

  1. 安装依赖包。
    sudo yum install -y curl policycoreutils-python openssh-server
  2. 设置SSH开机自启动并启动SSH服务。
    sudo systemctl enable sshd
    sudo systemctl start sshd
  3. 安装Postfix来发送通知邮件。
    sudo yum install postfix
  4. 设置Postfix开机自启动。
    sudo systemctl enable postfix
  5. 启动Postfix服务。
    1. 运行命令vim /etc/postfix/main.cf打开main.cf文件,找到下图内容:

      set_inet
    2. i进入编辑模式。
    3. 将这行代码改为inet_interfaces = all
    4. Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。
    5. 运行命令sudo systemctl start postfix启动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服务器的公网IP地址。
  8. 使用浏览器访问GitLab服务器的公网IP地址。
    返回页面如下图所示,说明环境搭建成功。
    sign_in

使用GitLab

完成以下操作,使用GitLab:

  1. 登录GitLab。
    1. 在浏览器的地址栏中,输入ECS服务器的公网IP即可进入GitLab的登录界面,首次登录使用用户名root
    2. 首次登录会强制用户修改密码。密码修改成功后,输入新密码进行登录。

      修改登录密码
      GitLab欢迎页面
  2. 创建Project。
    1. 使用Linux自带的软件源安装Git工具。
      yum install git

      install_git
    2. 生成密钥文件。
      使用ssh-keygen生成密钥文件.ssh/id_rsa,再将公钥文件id-rsa.pub中的内容粘帖到GitLab服务器的SSH-key的配置文件中。
      密钥
      公钥
    3. 在GitLab的主页中新建一个Project。

      new_project
      new_project_2
    4. 添加ssh key,导入步骤2中生成的密钥文件内容。

      import-sshkey-1
      import-sshkey-2
      ssh key添加完成后,如下图所示。
      import-ssh-key-complete
    5. 保存项目地址,该地址在进行克隆操作时需要用到。

      项目地址
  3. 简单配置。
    1. 配置使用Git仓库的人员姓名。
      git config --global user.name "testname" 
    2. 配置使用Git仓库的人员email,填写自己的公司邮箱。
      git config --global user.email "abc@example.com" 
    3. 克隆项目,在本地生成同名目录,并且目录中会有所有的项目文件。
      git clone git@iZxxxxxxxxxxxxxxxxx3Z: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中。
      文件同步结果