GitLab是Ruby开发的自托管的Git项目仓库,可通过Web界面访问公开的或者私人的项目。本教程介绍如何安装和使用GitLab。
前提条件
手动部署GitLab前,请确保您已创建一台ECS实例。要求如下:
- 部署GitLab的实例要求至少使用2 vCPU和4 GiB内存的计算资源,本示例中,手动部署GitLab所使用的相关资源版本如下:
- 实例规格:ecs.c6.large
- 操作系统:CentOS 7.2 64位
创建实例的具体操作,请参见使用向导创建实例。
- 已在安全组内添加入方向规则放行80端口。具体操作,请参见添加安全组规则。
使用镜像部署GitLab环境
- 进入GitLab代码管理(Centos 64位 | GitLab)镜像详情页面,单击立即购买,然后按界面提示完成配置选型并购买ECS实例。
- 远程连接ECS实例。
- 开启GitLab的远程访问权限。
注意 GitLab镜像部署成功后默认禁止远程访问。您需要开启远程访问,才能通过ECS服务器的公网IP地址访问GitLab的登录界面。更多详情,请参见
镜像帮助文档。
- 运行以下命令,进入gitlab目录。
- 运行以下命令,执行gitlab_opennet.sh脚本。
命令执行完毕后,即可远程访问GitLab的登录界面。
- 获取ECS实例的公网IP地址。
- 登录ECS管理控制台。
- 在左侧导航栏,选择。
- 在顶部菜单栏左上角处,选择地域。
- 在实例页面,找到所购ECS实例,并在IP 地址列获取该实例的公网IP地址。
- 在本地主机中,打开浏览器,然后在地址栏输入ECS实例的公网IP地址,访问GitLab主页。
手动部署GitLab环境
- 安装依赖包。
sudo yum install -y curl policycoreutils-python openssh-server
说明
- 本教程中示例场景的操作系统为CentOS 7.2 64位。如果您使用CentOS 8系统的ECS实例, 运行以上命令将出现找不到依赖包
policycoreutils-python
的问题,原因是CentOS 8的软件源中没有包含该依赖包。该依赖包不影响部署GitLab,您可以忽略该问题继续运行下文中的命令。
- 此外,由于CentOS 8结束生命周期(EOL),如果您使用CentOS 8系统的ECS实例,请先切换源地址。具体操作,请参见CentOS 8 EOL如何切换源?。
- 依次运行以下命令,配置SSH服务。
- 启动SSH服务。
sudo systemctl start sshd
- 设置SSH服务为开机自启动。
sudo systemctl enable sshd
- 安装Postfix来发送通知邮件。
- 设置Postfix开机自启动。
sudo systemctl enable postfix
- 启动Postfix服务。
- 运行以下命令,打开main.cf文件。
- 找到如下图所示的代码,然后按i进入编辑模式。
- 将该行代码修改为
inet_interfaces = all
。
- 按Esc退出编辑模式,然后输入
:wq
并回车,保存关闭文件。
- 运行以下命令,启动Postfix服务。
sudo systemctl start postfix
- 添加GitLab软件包仓库。
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
- 安装GitLab。
sudo EXTERNAL_URL="GitLab服务器的公网IP地址" yum install -y gitlab-ce
说明 您可从ECS管理控制台的页面找到GitLab所属ECS实例的公网IP地址。
- 使用浏览器访问GitLab服务器的公网IP地址。
返回页面如下图所示,表示环境搭建成功,并且您需要设置新密码。

使用GitLab
- 登录GitLab。
在浏览器的地址栏中,输入
ECS服务器的公网IP即可进入GitLab的登录界面,首次登录使用用户名
root
,密码为首次访问GitLab时设置的新密码。

登录成功后界面如下。

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

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

使用如下命令查看公钥文件
id_rsa.pub中的内容。在下一步操作中,您需要粘贴该内容到GitLab服务器的SSH-key的配置文件中。
cat .ssh/id_rsa.pub

- 在GitLab的主页中,单击New Project,新建一个Project。
- 设置Project相关配置项,然后单击Create project。
- 添加SSH key。
- 单击add an SSH key。

- 导入步骤2中生成的密钥文件内容。

ssh key添加完成后,如下图所示。

- 保存项目地址,该地址在进行克隆操作时需要用到。
- 简单配置。
- 配置使用Git仓库的人员姓名。
git config --global user.name "testname"
- 配置使用Git仓库的人员email,填写自己的公司邮箱。
git config --global user.email "abc@example.com"
- 克隆项目,在本地生成同名目录,并且目录中会有所有的项目文件。
git clone git@iZ****3Z:root/test.git

- 上传文件。
- 进入到项目目录。
- 创建需要上传到GitLab中的目标文件。
echo "test" > /root/test.sh
- 将目标文件或者目录复制到项目目录下。
cp /root/test.sh ./

- 将test.sh文件加入到索引中。
- 将test.sh提交到本地仓库。
- 将文件同步到GitLab服务器上。
git push -u origin master

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