前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于 AlmaLinux 9 部署 GitLab Runner 实战

基于 AlmaLinux 9 部署 GitLab Runner 实战

原创
作者头像
远哥制造
修改2024-11-08 00:28:04
1070
修改2024-11-08 00:28:04
举报
文章被收录于专栏:远哥制造

0x00. 前言

本文是一个系列,本篇为系列文章的第五篇:基于 AlmaLinux 9 部署 GitLab Runner 实战

第一篇:基于 AlmaLinux 9 安装 GitLab 社区版实战

第二篇:基于 AlmaLinux 9 配置 GitLab 社区版实战

第三篇:基于 AlmaLinux 9 备份 GitLab 社区版实战

第四篇:记一次跨 6 个大版本通宵升级 17 次 GitLab 社区版的经历

本文仍基于在腾讯云购买的轻量机 cn-tx-bj7-a9 上安装,AlmaLinux 9.4 版本,配置为 4C4G60G


上一篇文章记一次跨 6 个大版本通宵升级 17 次 GitLab 社区版的经历中介绍了一次公司内部使用的 GitLab 真实升级经历

结尾提及下一篇文章开始介绍 GitLab CI/CD 的相关实践,计划从部署GitLab Runner 说起

没错,这篇文章就从部署 GitLab Runner 讲起

0x01. GitLab Runner

什么是 GitLab Runner 呢?

GitLab Runner is the open source project that is used to run your CI/CD jobs and send the results back to GitLab

说白了,就是一个可以去执行各种自定义任务的东西,并且能集成到 GitLab 的 CI/CD 中

也就是说,要想把 CI/CD 搞起来,就得先安装 GitLab Runner,靠它去执行任务,跑 test、build 等

0x02. 安装计划

公司团队里分前端和后端项目,自己是后端开发,就拿后端举例子,我们用的语言是 Python

  • 跑测试:代码 Lint 用的是 PEP8
  • 跑构建:生成镜像用的是 docker build
  • 跑质检:查看代码质量报告用的是 SonarQube

实测一台机子上安装一个 Runner 就可以了,因为它可以启动多个进程,跑多个任务

也因为有些特殊场景,比如构建需要从宿主机上拷贝文件,只在一台机子上安装 Runner 就配一台机子的环境就好了

万一哪天资源不够用了,到时候把 Runner 安装在新的机器上,再配好环境也就可以了

0x03. 安装 Runner

这里基于在腾讯云购买的轻量机 cn-tx-bj7-a9 上演示安装过程

同 GitLab 的安装,仍然选择进程的方式进行安装

参照官方文档:https://docs.gitlab.com/runner/install/linux-repository.html

1. 配置源

代码语言:txt
复制
[root@cn-tx-bj7-a9 ~]# wget https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh
[root@cn-tx-bj7-a9 ~]# sh script.rpm.sh
Detected operating system as almalinux/9.
Checking for curl...
Detected curl...
Downloading repository file: https://packages.gitlab.com/install/repositories/runner/gitlab-runner/config_file.repo?os=almalinux&dist=9&source=script
done.
Installing yum-utils...
runner_gitlab-runner-source                                                                                                                                                                                               142  B/s | 862  B     00:06    
runner_gitlab-runner-source                                                                                                                                                                                               3.5 kB/s | 3.1 kB     00:00    
Importing GPG key 0x51312F3F:
 Userid     : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
 Fingerprint: F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F
 From       : https://packages.gitlab.com/runner/gitlab-runner/gpgkey
runner_gitlab-runner-source                                                                                                                                                                                               2.2 kB/s | 3.1 kB     00:01    
Importing GPG key 0x35DFA027:
 Userid     : "GitLab, Inc. <support@gitlab.com>"
 Fingerprint: 09E5 7083 F34C CA94 D541 BC58 A674 BF81 35DF A027
 From       : https://packages.gitlab.com/runner/gitlab-runner/gpgkey/runner-gitlab-runner-4C80FB51394521E9.pub.gpg
runner_gitlab-runner-source                                                                                                                                                                                               2.8 kB/s | 3.1 kB     00:01    
Importing GPG key 0x6BA75A4E:
 Userid     : "GitLab, Inc. <support@gitlab.com>"
 Fingerprint: 931D A69C FA3A FEBB C97D AA8C 6C57 C29C 6BA7 5A4E
 From       : https://packages.gitlab.com/runner/gitlab-runner/gpgkey/runner-gitlab-runner-49F16C5CC3A0F81F.pub.gpg
runner_gitlab-runner-source                                                                                                                                                                                                28  B/s | 296  B     00:10    
Last metadata expiration check: 0:00:03 ago on Fri 08 Nov 2024 12:01:07 AM CST.
Package yum-utils-4.3.0-13.el9.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Generating yum cache for runner_gitlab-runner...
Importing GPG key 0x51312F3F:
 Userid     : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
 Fingerprint: F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F
 From       : https://packages.gitlab.com/runner/gitlab-runner/gpgkey
Importing GPG key 0x35DFA027:
 Userid     : "GitLab, Inc. <support@gitlab.com>"
 Fingerprint: 09E5 7083 F34C CA94 D541 BC58 A674 BF81 35DF A027
 From       : https://packages.gitlab.com/runner/gitlab-runner/gpgkey/runner-gitlab-runner-4C80FB51394521E9.pub.gpg
Importing GPG key 0x6BA75A4E:
 Userid     : "GitLab, Inc. <support@gitlab.com>"
 Fingerprint: 931D A69C FA3A FEBB C97D AA8C 6C57 C29C 6BA7 5A4E
 From       : https://packages.gitlab.com/runner/gitlab-runner/gpgkey/runner-gitlab-runner-49F16C5CC3A0F81F.pub.gpg
Generating yum cache for runner_gitlab-runner-source...

The repository is setup! You can now install packages.

2. 执行安装

代码语言:txt
复制
[root@cn-tx-bj7-a9 ~]# dnf install gitlab-runner

安装完成后

就可以执行 gitlab-runner 命令查看相关用法了

比如查看当前状态的 gitlab-runner status

代码语言:txt
复制
[root@cn-tx-bj7-a9 ~]# gitlab-runner status
Runtime platform                                    arch=amd64 os=linux pid=3906867 revision=12030cf4 version=17.5.3
gitlab-runner: Service is running

0x04. 注册 Runner

因为可以在不同于 GitLab 安装的机子上部署 GitLab Runner,所以安装后需要配置接入哪个 GitLab

也就是注册的意思,可以参照官方文档的命令示例

参照官方文档:https://docs.gitlab.com/runner/register/index.html

推荐使用团队的 TOKEN,直接把 GitLab Runner 注册到团队里,而不是每个项目一个

这里贴一下团队内部在注册完成后的样子,执行 gitlab-runner list

可以看出我们的命名规范是【组名】-【IP】-【功能】-【序号】,实际上对应上文就是

  • python3.6 是跑测试 PEP8
  • build 是跑构建 docker build

注册完成后也可以用过 gitlab-runner verify 来验证和 GitLab 的连接然后是否正常

然后在 GitLab 的群组设置下,就能看到存活的 Runner 列表了

0x05. 修改 Runner 配置文件

需要增大并发数,也就是配置 concurrent=4

代码语言:txt
复制
[root@localhost ~]# cat /etc/gitlab-runner/config.toml
concurrent = 4
check_interval = 0
connection_max_age = "15m0s"
shutdown_timeout = 0

[session_server]
  session_timeout = 1800

这样每一个 Runner 同时就能运行 4 个任务了

0x06.后记

GitLab Runner 的使用其实也是一直都想拿出来说的,这篇文章简单介绍了下,完成了基本的部署

计划之后再来谈如何把 GitLab CI/CD 搞起来,比如 PEP8、docker build 和 SonarQube 扫描等等

也欢迎购买轻量机进行尝试,双十一拼团有优惠:https://cloud.tencent.com/act/pro/double11-2024?fromSource=gwzcw.8891816.8891816.8891816

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00. 前言
  • 0x01. GitLab Runner
  • 0x02. 安装计划
  • 0x03. 安装 Runner
    • 1. 配置源
      • 2. 执行安装
      • 0x04. 注册 Runner
      • 0x05. 修改 Runner 配置文件
      • 0x06.后记
      相关产品与服务
      轻量应用服务器
      轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档