应用场景

GitLab Runner 介绍

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 - 系统盘:40GiBPortainer应用镜像运行的最低配置为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实例

  1. 登录云耀云服务器L实例控制台
  2. 单击“购买资源”,在下拉列表中选择“购买 云耀云服务器L实例”或选择“购买 云耀服务组合”。
  3. 对云服务器进行资源配置。本例以选择“购买 云耀云服务器L实例”为例。
参数说明
区域不同区域的云耀云服务器L实例之间内网互不相通。请就近选择靠近你业务的区域,可减少网络时延,提高访问速度。
场景镜像选择Portainer应用镜像。
套餐规格选择套餐规格。最低配置为2核2GB、系统盘40GiB。
实例名称请自定义方便你识别的实例名称,例如Portainer-Example。
附加服务(可选)仅选择“购买 云耀云服务器L实例”时支持。根据需要任意选择数据盘、主机安全、云备份附加服务。
购买时长单次购买最短为1个月,最长为3年。
购买数量设置你购买的云耀云服务器L实例数量。
  1. 单击“立即购买”,进入订单详情页面。根据界面提示,请确认配置信息,阅读并勾选协议。
  2. 单击“去支付”,根据页面提示完成支付。
  3. 单击“返回华为云云耀云服务解决方案控制台”,查看已创建的云耀云服务器L实例。
设置云耀云服务器L实例密码
  1. 单击云耀云服务器L实例卡片。
  2. 在“概览”页“镜像信息”中,单击“管理”登录管理界面,检查应用镜像是否正常启动。

**须知:**在应用镜像启动期间,对云耀云服务器L实例进行重置密码、重启或开关机操作将导致应用镜像管理界面登陆异常。如果管理界面显示正常的引导或登陆界面表示应用镜像已经正常启动。否则请耐心等待1~2分钟,稍后重试。
4. 请参考设置/重置密码,设置云耀云服务器L实例管理员root的密码。

配置安全组

配置安全组的入方向访问规则,确保可以正常访问应用镜像。

  1. 单击云耀云服务器L实例卡片,进入资源页面。
  2. 在左侧列表中单击“云耀云服务器L实例”,单击云服务器名称,进入云服务器详情页面。
  3. 选择“安全组”页签,单击“添加规则”,添加如下规则。本例只添加基本规则,你可根据需要添加更多规则。
优先级策略类型协议端口源地址描述
100允许IPv4TCP:80930.0.0.0/0允许访问GitLab Runner服务。
100允许IPv4TCP:4430.0.0.0/0允许使用HTTPS协议访问应用管理界面。
100允许IPv4TCP:800.0.0.0/0允许访问HTTP协议访问应用管理界面。
  1. **图1 **配置结果 为了方便,我这里将所有的端口都已放开。生产环境请勿这样配置。不太安全。

初始化Portainer

  1. 在服务器“概览”页“镜像信息”中,单击“管理”登录管理界面。初始化Portainer有一定时效性,如果未能快速创建用户,会出现如下图提示。请登录云服务器执行命令sudo docker restart portainer重启Portainer,随后快速创建用户。
  2. 设置Portainer管理员用户名密码,单击“Create user”。如果你有备份的数据,在“Restore Portainer from backup”配置项中,你可以从本地上传备份数据以便快速搭建Portainer环境。
  3. 选择“Home”菜单,单击Local项目就可以开始使用Portainer进行Docker可视化管理 。

至此,你已获得一台完备的Portainer应用云耀云服务器L实例。你可以开始使用Portainer,下面我们继续在该平台上部署GitLab Runner平台

使用Portainer部署GitLab Runner容器

下面我们以部署GitLab Runner容器为例,介绍如何使用Portainer进行Docker可视化管理。更多操作详见官网指导

创建GitLab Runner容器
  1. 选择“Contaners”菜单,单击“Add container”添加GitLab Runner容器。
  2. 按图示配置GitLab Runner容器参数。
  • ①Name:自定义的容器名称
  • ②Image:容器镜像名称,例如设置 GitLab Runner/tb-postgres,系统将自动在DockerHub中拉取GitLab Runner最新镜像。
  • ③单击“publish a new network port”,添加8093端口,确保可以正常访问GitLab Runner服务。
  • ④Restart policy:建议选择“Always”,使得容器无论在什么情况下停止总会自动重新启动。
  1. 在这里插入图片描述
    在这里插入图片描述

相比其他服务,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
  1. 单击“Deploy the container”创建GitLab Runner容器。
使用GitLab Runner 服务

在部署好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

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐