GitLab Runner是一个用于执行GitLab CI/CD任务的工具,它可以在Linux、macOS和Windows上使用,并且可以通过包管理器、二进制文件或Docker镜像进行安装。它与GitLab CI结合使用,能够在最少的手动干预下帮助团队实现CI/CD流程的自动化。
GitLab Runner支持多种Runner类型,包括Shell Runner、Docker Runner和Kubernetes Runner。Shell Runner是最基本的Runner类型,它会在Runner所在机器上打开一个终端并执行作业中定义的命令。Docker Runner则是在Docker容器中执行作业的Runner类型,这意味着作业可以在特定的容器环境中运行,而不需要在主机上安装软件或依赖项。Kubernetes Runner则是在Kubernetes集群中执行作业的Runner类型,它通过创建Pod来运行作业,并自动清理资源。
以下流程解释了GitLab Runner 与GitLab 实例之间的关系
使用GitLab Runner运行的项目CI/CD流水线
以下就给大家演示一下如何在华为云云耀云服务器L实例,部署GitLab Runner服务,以及简单的使用。
该方法是在使用Portainer应用镜像进行的。
本次实践使用Portainer镜像。
本实践以如下资源规划为例,你可根据实际需要进行调整。
资源 | 配置 | 说明 |
---|---|---|
云耀云服务器L实例 | - CPU:2核 - 内存:2GB - 系统盘:40GiB | Portainer应用镜像运行的最低配置为2核2GB、系统盘40GiB,建议根据你的需求选择云耀云服务器L实例。 |
镜像 | Portainer | 选择Portainer应用镜像。 |
安全组 | 入方向规则:- 协议:TCP- 端口:80、443、8093 - 源地址:0.0.0.0/0 | - 80:允许使用HTTP协议访问网站。- 443:允许使用HTTPS协议访问网站。- 8093:允许访问GitLab Runner 服务 |
域名 | domaintest.com | - 如果你仅为个人开发或测试使用,可以不添加域名。- 如果你的应用对外开放,请为云服务器添加并解析域名。 |
参数 | 说明 |
---|---|
区域 | 不同区域的云耀云服务器L实例之间内网互不相通。请就近选择靠近你业务的区域,可减少网络时延,提高访问速度。 |
场景镜像 | 选择Portainer应用镜像。 |
套餐规格 | 选择套餐规格。最低配置为2核2GB、系统盘40GiB。 |
实例名称 | 请自定义方便你识别的实例名称,例如Portainer-Example。 |
附加服务(可选) | 仅选择“购买 云耀云服务器L实例”时支持。根据需要任意选择数据盘、主机安全、云备份附加服务。 |
购买时长 | 单次购买最短为1个月,最长为3年。 |
购买数量 | 设置你购买的云耀云服务器L实例数量。 |
**须知:**在应用镜像启动期间,对云耀云服务器L实例进行重置密码、重启或开关机操作将导致应用镜像管理界面登陆异常。如果管理界面显示正常的引导或登陆界面表示应用镜像已经正常启动。否则请耐心等待1~2分钟,稍后重试。
4. 请参考设置/重置密码,设置云耀云服务器L实例管理员root的密码。
配置安全组的入方向访问规则,确保可以正常访问应用镜像。
优先级 | 策略 | 类型 | 协议端口 | 源地址 | 描述 |
---|---|---|---|---|---|
100 | 允许 | IPv4 | TCP:8093 | 0.0.0.0/0 | 允许访问GitLab Runner服务。 |
100 | 允许 | IPv4 | TCP:443 | 0.0.0.0/0 | 允许使用HTTPS协议访问应用管理界面。 |
100 | 允许 | IPv4 | TCP:80 | 0.0.0.0/0 | 允许访问HTTP协议访问应用管理界面。 |
至此,你已获得一台完备的Portainer应用云耀云服务器L实例。你可以开始使用Portainer,下面我们继续在该平台上部署GitLab Runner平台
下面我们以部署GitLab Runner容器为例,介绍如何使用Portainer进行Docker可视化管理。更多操作详见官网指导。
相比其他服务,GitLab Runner的服务并没有一个web访问页面,其次我们需要指定目录的挂载。
以上的配置基本相当于以下指令
docker run -d --name gitlab-runner -p 8093:8093 --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
在部署好GitLab Runner 后,我们除了在Portainer平台上看到容器的状态,还可以进入服务器使用 docker ps -a
命令查看所有运行的容器。
在确认GitLab Runner 容器正常启动后,下面为我们的git仓库注册Runner。
在GitLab 点击左侧菜单中的Setting,接着点击CI/CD
然后打开Runner菜单面板,复制注册Runner要使用的token。
使用ssh 进入服务,执行一些命令,为我们的项目注册一个token。
docker run --rm -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register \
--non-interactive \
--executor "docker" \
--docker-image alpine:latest \
--url "https://gitlab.com/" \
--registration-token "YOUR_TOKEN" \
--description "docker-runner" \
--tag-list "docker,global" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected"
注册成功后,我们会在该页面看到一个可以使用的绿色状态的Runner。
接着我们编写CI/CD 流水线文件,该文件默认在项目的根目录,名字为.gitlab-ci.yml
variables:
USER_NAME: 'fizz'
default:
tags:
- docker
job1:
variables:
USER_NAME: 'Tom'
script: echo 'hello' $USER_NAME
提交后,会自动一条流水线。
打开日志可以看到。
更多的内容可以看我的GitLab CI/CD 专栏
https://blog.csdn.net/github_35631540/category_10804590.html