human: 如何处理七牛云的云主机安装和使用GitLab

gpt: [云主机](https://developer.qiniu.com/qvm) > 使用文档 > 安装和使用GitLab

#  安装和使用GitLab

最近更新时间: 2020-09-17 18:00:53

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

# 前提条件

使用本教程进行操作前，请确保您已经注册了七牛云账号。如还未注册，请先完成[账号注册](https://portal.qiniu.com/signup?ref=developer.qiniu.comregister.htm?)。

您已创建部署GitLab的实例，要求如下：

  * 部署GitLab的实例要求至少使用2个vCPU和4GiB的内存，本示例中使用的相关资源版本如下。 
    * 实例规格：ecs.c6.large
    * 操作系统：CentOS 7.2 64位
  * 已添加如下表所示的安全组规则。 方向| 协议/应用| 端口/范围| 源地址  
---|---|---|---  
入方向| HTTP(80)| 80| 0.0.0.0/0  

# 使用镜像部署GitLab环境

  1. 进入[GitLab代码管理（Centos 64位 | GitLab）](https://market.aliyun.com/products/55530001/jxsc000067.html?spm=5176.730005.0.0.LuTu)镜像详情页面，单击立即购买，然后按界面提示完成配置选型并购买QVM实例。
  2. 远程连接QVM实例。连接方式请参见[连接方式概述](https://developer.qiniu.com/qvm/manual/4308/qvm-login "云服务器QVM支持通过多种方式连接实例，包括Workbench、VNC和第三方客户端工具。您可以综合考虑目标实例的操作系统、本地设备的操作系统、需要执行的操作等因素，选择合适的连接方式。")。
  3. 运行/alidata目录下的gitlab_opennet.sh脚本，开启远程访问。

__

**注意** GitLab镜像部署成功后默认禁止远程访问。您需要开启远程访问，才能通过QVM服务器的公网IP地址访问GitLab的登录界面。

  4. 登录[QVM管理控制台](https://portal.qiniu.com/qvm/dashboard)。
  5. 在左侧导航栏，单击实例与镜像 > 实例。
  6. 在顶部菜单栏左上角处，选择地域。 
  7. 在实例列表页面，找到所购QVM实例，并在IP 地址列获取该实例的公网IP地址。
  8. 在浏览器地址栏输入公网IP地址，访问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](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/Et1espQqIkaiB5zZ7Vo9.png)

    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

__

**说明** 您可从QVM管理控制台的实例列表页面找到GitLab服务器的公网IP地址。

  8. 使用浏览器访问GitLab服务器的公网IP地址。

返回页面如下图所示，表示环境搭建成功，并且您需要设置新密码。![gitlab1](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/pcX14xGskiSD5eAQUTRm.png)

# 使用GitLab

  1. 登录GitLab。

在浏览器的地址栏中，输入QVM服务器的公网IP即可进入GitLab的登录界面，首次登录使用用户名`root`，密码为首次访问GitLab时设置的新密码。![gl2](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/Q7PkhwqI8RiojFEmB1rN.png)

登录成功后界面如下。![gl3](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/AJvIeF3DKYtmzXGQHjrb.png)

  2. 创建Project。
    1. 使用Linux自带的软件源安装Git工具。
        
                yum install git

![install_git](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/rtnfYzxAgFMpcH62ZuP9.png)

    2. 生成密钥文件。

使用如下命令生成密钥文件.ssh/id_rsa。

        
                ssh-keygen

![密钥](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/kcabW1LVuX6dCNy5vSw4.png)使用如下命令查看公钥文件id_rsa.pub中的内容。在下一步操作中，您需要粘贴该内容到GitLab服务器的SSH-
key的配置文件中。

        
                cat .ssh/id_rsa.pub

![公钥](http://qey2kbifv.hn-bkt.clouddn.com/2020-09-04/iewhEDV04G6bXa7ofs2J.png)

    3. 在GitLab的主页中新建一个Project。

![new_project](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/V2wprcbYCMnfXqsG1y34.png)  
![new_project_2](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/esvlh8pJ0YIdO6ncCFzx.png)  

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

![import-sshkey-1](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/7EGlLAjqTHySUkO0znXf.png)  
![import-sshkey-2](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/WYd8kmr7EMKZ50jgSUA4.png)  

ssh key添加完成后，如下图所示。  
![import-ssh-key-complete](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/QpYu5W8K3lqMOoEvJah0.png)  

    5. 保存项目地址，该地址在进行克隆操作时需要用到。

![项目地址](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/d1MDUVkquceyjZv5iJrf.png)

  3. 简单配置。
    1. 配置使用Git仓库的人员姓名。
        
                git config --global user.name "testname" 

    2. 配置使用Git仓库的人员email，填写自己的公司邮箱。
        
                git config --global user.email "[abc@example.com](mailto:abc@example.com)" 

    3. 克隆项目，在本地生成同名目录，并且目录中会有所有的项目文件。 
        
                git clone git@iZxxxxxxxxxxxxxxxxx3Z:root/test.git

![简单配置](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/CnJKA7cSxQa3rqVsPG40.png)  

  4. 上传文件。
    1. 进入到项目目录。
        
                cd test/ 

    2. 创建需要上传到GitLab中的目标文件。
        
                echo "test" > /root/test.sh

    3. 将目标文件或者目录复制到项目目录下。
        
                cp /root/test.sh ./ 

![上传文件](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/QYMJrkKuBCSR7b8nFzI0.png)  

    4. 将test.sh文件加入到索引中。 
        
                git add test.sh

    5. 将test.sh提交到本地仓库。
        
                git commit -m "test.sh"

    6. 将文件同步到GitLab服务器上。
        
                git push -u origin master

![文件同步命令](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/QjTR0LJGxe1CpMi3rzcY.png)

在网页中查看上传的test.sh文件已经同步到GitLab中。  
![文件同步结果](http://qey2kbifv.hn-
bkt.clouddn.com/2020-09-04/jEcWg4BhYMrAt7OnxXH6.png)