挑选合适的服务器
⚠️ 本文以aws作为例子🌰,其他的云服务器配置方面可能有细小区别
⚠️ 出于安全和性能原因,您不应该在托管GitLab 实例的机器上安装极狐GitLab Runner
Gitlab 服务器配置
确保GitLab能够流畅运行。基本要求通常包括:
- CPU:至少需要4核心
- 内存:至少需要4GB RAM
- 硬盘:20GB的存储空间也够了
刚开始使用过2核4GB的华为云和aws的EC2,虽然都能打开网站,不仅很慢,而且经常500,升级配置之后就没有这些问题了,所以我建议是4核4GB以上的硬件配置
Gitlab-runner 服务器配置
GitLab Runner 对系统要求差异很大,只是基本搭建和运行,如下配置即可:
- CPU:2核心
- 内存:4GB RAM
安装配置Gitlab
为了方便,这里使用的是Docker拉取Gitlab镜像安装
0. 安装Docker
如果用的是aws的云服务器,可以点击如下链接进行安装
docs.aws.amazon.com/serverless-…
1. 创建目录,本地系统卷挂载
文件名称和路径可以不和我一样,在第三步挂载的时候,用你自己创建的文件能挂载即可
mkdir -p ~/data/gitlab/config ~/data/gitlab/logs ~/data/gitlab/data
2. 拉取Gitlab Docker镜像
docker pull gitlab/gitlab-ce
3. 启动并挂载Gitlab
docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v ~/data/gitlab/config:/etc/gitlab -v ~/data/gitlab/logs:/var/log/gitlab -v ~/data/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
修改gitlab.rb相关配置
如果不修改,那么你的git仓库的url就会是类似这样 git@bc03aa040021:url/repo.git 的地址, ip 地址是一串乱码,代码就拉取不了
打开gitlab.rb配置文件(文件在挂载的config文件夹中)
vim data/gitlab/config/gitlab.rb
修改配置如下
# 设置Clone with HTTP中的IP(我这里设置的是公网ip)
external_url 'http://120.46.xxx.xx'
# 设置Clone with SSH中的IP
gitlab_rails['gitlab_ssh_host'] = '120.46.xxx.xxx'
# 修改主机端口映射(这一步很重要,不然会拉取不了代码)
gitlab_rails['gitlab_shell_ssh_port'] = '222' # 此端口是宿主机映射到 Gitlab 22的端口
登录Gitlab
- 到网页上,输入主机Ip即可访问如下登录页面
- 首次登录github,账号名是:root,密码在 data/gitlab/config/initial_root_password(你config的文件夹里面)该临时文件夹里面(进去之后记得先改密码哦)
安装Gitlab-Runner
gitlab-runner的安装方式有很多,这里使用的直接安装,不想在docker里面再安装gitlab-runner,直接安装的方式有很多,本文选择的安装方式是包管理进行进行安装
其他安装方式:docs.gitlab.com/runner/inst…
1. 添加官方仓库
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
2. 安装最新版本的 GitLab Runner
sudo yum install gitlab-runner
3. 创建runner
登录gitlab(root用户),点击左下角的 Admin Area -> CI/CD -> Runners -> New instance runner
填上Tags,点击Create runner
4. 注册runner
当我们创建好之后,就会到注册页面,这里会列举出详细步骤(如下图)
执行结果如下:
值得注意的是,Gitlab注册地址给的是公有IP,但是如果我们的两台机器都是属于同一个VPC下的时候,我们可以使用私有IP进行注册,这样直接内网通信,就会非常快
5. Gitlab-runner,启动!
因为我上面用的executor是shell,所以直接使用如下命令
gitlab-runner run
5. Gitlab上查看注册的Runners
如下图表示我们就注册成功了
校验,运行一个最简单的项目
- 在Gitlab上创建一个空项目即可,拉到本地,然后创建一个 .gitlab-ci.yml 文件, 配置如下:
image: node:latest
cache:
paths:
- node_modules/
test_async:
tags:
# 这里是用创建runner的tag
- shared
script: echo "lalala~~~~~~"
deploy:
tags:
- shared
stage: deploy
script: echo "Successfully deployed."
environment: production
- push代码,然后就会可以在Gitlab看构建情况,至此,我们的流水线就搭建起来了
运行Todo-List项目
这个todo-list项目需要docker和docker-compose,所以我们需要在有gitlab-runner的机器上安装docker和docker-compose
- 安装docker(如上)
- 安装docker-compose
# docker-compose (latest version)
$-> sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
# Fix permissions after download
$-> sudo chmod +x /usr/local/bin/docker-compose
# Verify success
docker-compose version
- 创建项目并上传代码,代码可以从如下链接拉取:github.com/FrontEndZha…
- 查看pipeline
- 访问Todo-list页面,ip就是gitlab-runner的ip,端口就是8080