配置 GitLab 服务器

2022-4-21 大约 6 分钟

# 配置 GitLab 服务器

本教程以 CSDN 开发云 官方的 GitLab 镜像实例 为例,配置GitLab以便正常托管代码和运行流水线

# 前期准备

SSH密钥对是一种安全便捷的登录认证方式,密钥用于登录 Linux 主机和 GitLab 自动打包部署。

创建密钥在自己的电脑上进行,可根据自己电脑的操作系统类型选择创建密钥的方式

# 创建密钥

# Windows 创建密钥

PuTTY 是一个 SSH 和 telnet 客户端,可使用它登录 Linux 主机。 PuTTY 是开源软件,提供源代码,由一群志愿者开发和支持。

PuTTYGen 用来创建密钥对。

浏览到下面开发者页面 (opens new window),下载 PuTTY 的安装程序

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
1

下载的文件,按照安装向导完成安装。

也可以从以下链接中下载 PuTTY 的64 位绿色版。绿色版下载后可直接运行,免去安装过程。

PuTTY (opens new window)

PuTTYGen (opens new window)

运行 puttygen.exe ,在 PuTTY 密钥生成器窗口中,单击 【Generate】。在灰色框中移动光标以填充绿色条。

Generating an SSH key pair in Putty.

点击【Save public key】按钮 保存公钥

点击【Save private key】按钮 保存公钥

# Linux/MacOS 创建密钥

使用ssh-keygen 生成 SSH 密钥,密钥用来登录 Linux 主机。

ssh-keygen
1

image-20220421134040207

一路回车就可以完成 创建SSH 密钥,可以看到 ~/.ssh目录下生成了 id_rsaid_rsa.pub 两个文件

image-20220421134123430

# 密钥使用场景

  • 创建主机时,创建密钥密钥内容填写id_rsa.pub 文件的内容
  • GitLab CI/CD SSH_PRIVATE_KEY 变量使用 id_rsa文件的内容

Linux/MacOS 使用cat命令查看密钥文件内容,windows 下使用type命令或写字板查看密钥文件内容

image-20220421134233886

#

# 创建gitlab 镜像实例

gitlab 主机用于托管项目代码,打包部署项目

访问云主机创建页面 (opens new window),在【镜像市场】选择【Gitlab】

image-20220420173659292

【主机规格】选择4GB/2CPU的以上配置。配置越高,支持的并发用户越多,打包构建的速度越快。gitlab 官方推荐配置是 4GB/4CPU。

注意:2GB 的主机可能安装完就卡死,访问页面一直是 502,根本无法使用。

image-20220421095339435

【登录凭证】选择您的SSH 密钥。若没有密钥,可以点击创建密钥,创建密钥时密钥内容粘贴 id_rsa.pub 文件的 内容。

image-20220420173908366

【弹性公网】选择固定带宽。带宽选择越大,打包构建的速度越快。

image-20220420174454347

配置完成后,点击页面底部的【立即购买】

完成购买后,在主机列表可以看到主机的 IP 地址。这个 IP是 gitlab 主机的 ip 地址,下面的配置中会用到。

image-20220420174803254

# 配置 gitlab

# 修改密码

在浏览器地址栏输入 http://gitlab ,访问 上一步购买的gitlab 主机。若访问 gitlab 页面上出现502错误,说明 gitlab 服务正在初始化服务,请稍后再试。

image-20220420150739878

输入用户名 root ,密码 H9ZjJo8jmb1p+2FAEJiA1Mv/ODHyj7JmGpe7joeGiJU=,点击 【Sign in】

成功登录系统后,为了系统安全。请访问 http://gitlab/-/profile/password/edit 修改密码。

# 修改GitLab的服务地址

image-20220421151244321

如上图,刚购买 gitlab 镜像主机后,GitLab 服务地址不正确,需要修改后才能正常 clone 代码。

此步骤必须进行,否则不能正常 clone 代码和构建项目

不设置服务地址构建时会出现如下错误

image-20220421152451050

# 登录gitlab服务器

下面采用CSDN 开发云网页控制台登录 Linux 主机。ssh 工具登录主机可参照文档登录 Linux 主机

访问主机管理控制台 (opens new window),选择【远程连接】

image-20220427154353611

在新打开的窗口中输入用户名root,出现提示输入 Password:时,点击【粘贴命令】粘贴密码。

vnc 终端目前不支持 Ctrl+V 粘贴密码,请使用【粘贴命令】

image-20220427160516605

在粘贴命令窗口中,粘贴密码,点击【确定】。

image-20220427162511306

随后在终端窗口中,输入【回车】。可以看到登录成功

image-20220427162704781

# 编辑配置文件

1、编辑GitLab配置文件:/etc/gitlab/gitlab.rb,运行以下命令

vi /var/gitlab/config/gitlab.rb
1

在文件末尾添加以下内容,注意用你gitlab 主机的 ip 替换<gitlab 主机的 ip>。也可以使用自己的域名,注意域名需要备案。

external_url 'http://<gitlab 主机的 ip>'
1

如果你不熟悉 vi 操作,使用如下命令,可以快捷的修改配置文件。

echo -e "\nexternal_url 'http://$(curl -s ifconfig.me)'" >> /var/gitlab/config/gitlab.rb

1
2

修改后的配置文件内容如下图

image-20220428143637008

2、进行所需的更改后,您需要重新启动GitLab以生效配置 :

docker restart gitlab
1

GitLab重新配置需要大概 3-5 分钟,请耐心等待

# 设置 SSH 密钥

在你的个人资料中添加SSH密钥之前,你不能通过SSH来拉取或推送仓库。

点击【偏好设置】

image-20220421172015392

在左侧菜单中,点击【SSH 密钥】

image-20220421172120862

粘贴密钥文件 id_rsa.pub 内容,点击【添加密钥】即可完成添加密钥。之后,你可以通过SSH来拉取和推送项目代码。