GitLab Runner 安装、CI/CD流水线配置指南

2024-06-15 06:44

本文主要是介绍GitLab Runner 安装、CI/CD流水线配置指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GitLab Runner 安装与配置指南

介绍

在本指南中,我们将介绍如何在GitLab服务器上安装并配置GitLab Runner,以及如何编写一个简单的GitLab CI/CD流水线配置文件,来实现自动化的测试、编译、打包和发布。

安装 GitLab Runner

下载并安装 GitLab Runner

  1. 下载 GitLab Runner 二进制文件
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
  1. 赋予执行权限
sudo chmod +x /usr/local/bin/gitlab-runner
  1. 创建 GitLab Runner 用户
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
  1. 安装并以服务的形式运行
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

解决权限问题

如果在执行流水线任务时遇到以下错误:

ERROR: Job failed: prepare environment: exit status 1.

可以注释掉 /home/gitlab-runner/.bash_logout 中的以下代码段:

if [ "$SHLVL" = 1 ]; then[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi

若遇到以下权限问题:

ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:

需要给 gitlab-runner 用户赋予 Docker 权限:

sudo usermod -aG docker gitlab-runner
sudo systemctl restart docker

编写流水线配置文件

在项目的根目录下,创建 .gitlab-ci.yml 文件。以下是一个示例配置:

stages: # 定义阶段- mvn-test- mvn-package-docker-pushvariables: # 设置常量DOCKER_IMAGE_NAME_ENGINE: engine:1.0.0DOCKER_IMAGE_NAME_ENGINE_SCHEDULER: engine-scheduler:1.0.0DOCKER_IMAGE_NAME_ENGINE_SCHEDULER_UI: engine-scheduler-ui:1.0.0DOCKER_IMAGE_PUSH_NAME_ENGINE: 192.168.1.76:8083/engine:1.0.0DOCKER_IMAGE_PUSH_NAME_ENGINE_SCHEDULER: 192.168.1.76:8083/engine-scheduler:1.0.0DOCKER_IMAGE_PUSH_NAME_ENGINE_SCHEDULER_UI: 192.168.1.76:8083/engine-scheduler-ui:1.0.0mvn-test:stage: mvn-testtags:- enginescript:- echo "Start mvn-test... "- mvn test- echo "End mvn-test."mvn-package-docker-push:stage: mvn-package-docker-pushtags:- enginewhen: manualscript:- echo "Start mvn-package... "- mvn clean package- echo "End mvn-package. "- echo "Start docker-build... "- cd engine/engine-app- docker build -t $DOCKER_IMAGE_NAME_ENGINE .- cd ../../scheduler/scheduler-server- docker build -t $DOCKER_IMAGE_NAME_ENGINE_SCHEDULER .- cd ../../scheduler/scheduler-ui- docker build -t $DOCKER_IMAGE_NAME_ENGINE_SCHEDULER_UI .- echo "End docker-build. "- echo "Start docker-push-sit... "- docker tag $DOCKER_IMAGE_NAME_ENGINE $DOCKER_IMAGE_PUSH_NAME_ENGINE- docker tag $DOCKER_IMAGE_NAME_ENGINE_SCHEDULER $DOCKER_IMAGE_PUSH_NAME_ENGINE_SCHEDULER- docker tag $DOCKER_IMAGE_NAME_ENGINE_SCHEDULER_UI $DOCKER_IMAGE_PUSH_NAME_ENGINE_SCHEDULER_UI- docker login 192.168.1.76:8083 -u nexus_app -p lianyu_123- docker push $DOCKER_IMAGE_PUSH_NAME_ENGINE- docker push $DOCKER_IMAGE_PUSH_NAME_ENGINE_SCHEDULER- docker push $DOCKER_IMAGE_PUSH_NAME_ENGINE_SCHEDULER_UI- echo "End docker-push-sit. "

创建 Runner

  1. 在 GitLab 界面中创建 Runner

在“CI/CD Settings -> Runners”页面,点击“New project runner”,配置以下主要选项:

  • Tags:按产品命名,如 engine
  • Runner description:同上
  • Maximum job timeout:设置超时时间,最小600秒
  1. 注册 Runner

在 GitLab 服务器上执行以下命令来注册Runner:

sudo gitlab-runner register --url http://192.168.1.74 --token glrt-WfmzN-7izBW81ZF_x7Xw

注册过程如下:

Runtime platform                                    arch=amd64 os=linux pid=2085600 revision=81ab07f6 version=16.10.0
Running in system-mode.                            There might be a problem with your config based on jsonschema annotations in common/config.go (experimental feature):
jsonschema: '/runners/0/Monitoring' does not validate with https://gitlab.com/gitlab-org/gitlab-runner/common/config#/$ref/properties/runners/items/$ref/properties/Monitoring/$ref/type: expected object, but got nullEnter the GitLab instance URL (for example, https://gitlab.com/):
[http://192.168.1.74]: 
Verifying runner... is valid                        runner=WfmzN-7iz
Enter a name for the runner. This is stored only in the local config.toml file:
[ubuntu-gitlab]: integration
Enter an executor: kubernetes, docker-autoscaler, instance, custom, ssh, docker, docker-windows, docker+machine, shell, parallels, virtualbox:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!Configuration (with the authentication token) was saved in "/etc/gitlab-runner/config.toml" 

查看流水线执行情况

在合并请求(Merge Requests)中可以查看流水线状态。如果显示绿色,表示代码执行成功。点击流水线编号,可以查看各阶段的详细运行情况。

总结

通过以上步骤,我们完成了GitLab Runner的安装与配置,并编写了一个示例的GitLab CI/CD流水线配置文件。这样可以实现代码的自动化测试、编译、打包和发布,提高开发效率。希望本指南对您有所帮助。

这篇关于GitLab Runner 安装、CI/CD流水线配置指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062713

相关文章

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

macOS怎么轻松更换App图标? Mac电脑图标更换指南

《macOS怎么轻松更换App图标?Mac电脑图标更换指南》想要给你的Mac电脑按照自己的喜好来更换App图标?其实非常简单,只需要两步就能搞定,下面我来详细讲解一下... 虽然 MACOS 的个性化定制选项已经「缩水」,不如早期版本那么丰富,www.chinasem.cn但我们仍然可以按照自己的喜好来更换