GitLab Runner 实现项目 CI/CD 发布

这篇具有很好参考价值的文章主要介绍了GitLab Runner 实现项目 CI/CD 发布。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Gitlab Runner简介

Gitlab实现CICD的方式有很多,比如通过Jenkins,通过Gitlab Runner等,今天主要介绍后者。Gitlab在安装的时候,就默认包含了Gitlab CI的能力,但是该能力只是用于协调作业,并不能真的去执行作业,因此需要搭配Gitlab Runner来作为执行器实现具体的CICD工作。Gitlab Runner可以被安装在任意支持的系统上,比如Linux、Windows、Mac,甚至也可以运行在Docker、Kubernetes集群上。

Gitlab Runner分为三种类型,在注册Runner过程中使用不同类型的token就能区分不同的类型。

  • Shared Runners,共享Runner,可以被仓库里面的任意项目使用;token获取位置为全局管理中心-Runner-注册令牌;

  • Group Runners,组Runner,仅能被某个组中的任意项目使用;token获取位置为项目群组-CICD-Runner-注册令牌;

  • Specific Runners,特定Runner,仅能被指定的项目使用;token获取位置为项目-设置-CICD-Runner-注册令牌;

如下是Gitlab Runner 的大致工作流程示意:

GitLab Runner 实现项目 CI/CD 发布,gitlab,ci/cd

Gitlab Runner注册

使用Docker安装
docker run -d --restart=always -p 9980:9980 -p 10022:22 --name gitlab_16_0 --env GITLAB_OMNIBUS_CONFIG="external_url 'http://IP:9980/'; gitlab_rails['lfs_enabled'] = true;" -v /home/gitlab/config:/etc/gitlab  -v /home/gitlab/logs:/var/log/gitlab  -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:16.0.1-ce.0

GitLab Runner在不同平台的注册可以在官网找到教程,本文就以Docker方式讲解如何进行注册,在开始之前,确保我们的电脑上已经安装好了Docker。

首先我们需要下载Gitlab Runner的镜像,并运行起来:

# 如果需要把配置文件挂载到宿主机的某个目录,可以自行修改
docker run -d --name gitlab-runner-01 --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest

然后执行注册命令:

# 进入容器内部并执行注册命令
docker exec -it gitlab-runner-01 gitlab-runner register
Runtime platform                                    arch=amd64 os=linux pid=37 revision=bbcb5aba version=15.3.0
Running in system-mode.

# 填写gitlab的地址,确保容器内能够顺利访问到该地址
Enter the GitLab instance URL (for example, https://gitlab.com/):
http://10.96.12.149/
# 填写需要注册的runner token,此处选择shared runner token
Enter the registration token:
BHRagrsztQAxdMPPhxGm
# 描述信息随意填写,也可不填
Enter a description for the runner:
[caa2879d6833]: gitlab-runner-01
# tag随意填写,此处不填
Enter tags for the runner (comma-separated):
# 随意填写,此处不填
Enter optional maintenance note for the runner:

Registering runner... succeeded                     runner=BHRagrsz
# 选择执行器的种类,建议选择docker
Enter an executor: docker, shell, ssh, kubernetes, custom, docker-ssh, parallels, virtualbox, docker+machine, docker-ssh+machine:
docker
# 使用最新版本
Enter the default Docker image (for example, ruby:2.7):
docker:latest
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"
容器注册的runner

此时,我们在gitlab的runner界面就能看到已经注册好的runner信息了:

GitLab Runner 实现项目 CI/CD 发布,gitlab,ci/cd

其余系统或者环境注册runner的过程就不再赘述了,基本相同,详情参考文档。

Gitlab Runner运行

我们首先准备一个项目,这个项目内容很简单,只是作为runner演示使用,总共两个文件:

  • index.html,用来表示项目的主页;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CICD测试</title>
</head>
<body>
<h1>Gitlab CICD 测试!!!</h1>
</body>
</html>
  • .gitlab-ci.yml,定义CICD流程的文件;

build-job:
  stage: build
  script:
    - echo "Hello, $GITLAB_USER_LOGIN!"

test-job1:
  stage: test
  script:
    - echo "This job tests something"

test-job2:
  stage: test
  script:
    - echo "This job tests something, but takes more time than test-job1."
    - echo "After the echo commands complete, it runs the sleep command for 20 seconds"
    - echo "which simulates a test that runs 20 seconds longer than test-job1"
    - sleep 20

deploy-prod:
  stage: deploy
  script:
    - echo "This job deploys something from the $CI_COMMIT_BRANCH branch."

大致的意思是,build阶段启动一个作业,输出一段文本;test阶段并行启动两个作业,也是分别输出一段文本;deploy阶段启动一个作业,输出一段文本;这三个阶段分别模拟了构建、测试、部署流程,具体的语法关键词等内容不属于本文范畴,可以参考官网。

测试项目

以上项目内容提交到gitlab后,显示如下,仅有master分支:

GitLab Runner 实现项目 CI/CD 发布,gitlab,ci/cd

运行流水线

此时,任意的提交行为、合并行为都会触发流水线的执行,但是也可以手动执行,我们此时选择项目中的CICD,流水线,并点击运行流水线。

GitLab Runner 实现项目 CI/CD 发布,gitlab,ci/cd

流水线运行界面

如下是运行中的流水线状态,可以查看各个阶段的任务,点击任务图标还可以查看具体的任务执行明细。

GitLab Runner 实现项目 CI/CD 发布,gitlab,ci/cd

runner任务运行数量统计

需要注意的是,流水线中包含多个任务时,这些任务是会被Gitlab CI随机调度到可以运行的runner上运行的,并非一直在某一个runner上,如下是运行三次流水线,每个runner的任务执行数量统计:

GitLab Runner 实现项目 CI/CD 发布,gitlab,ci/cd

至此,我们完成了两个runner的搭建和注册,并运行了示例项目中的流水线。后面文章我们再讲解工业级流水线的配置和高级的CICD内容。文章来源地址https://www.toymoban.com/news/detail-796587.html

到了这里,关于GitLab Runner 实现项目 CI/CD 发布的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Gitlab CI/CD入门(一)Python项目的CI演示

      本文将介绍CI/CD的基本概念,以及如何使用Gitlab来实现CI/CD。   本文介绍的CI/CD项目为个人Gitlab项目:gitlab_ci_test,访问网址为:https://gitlab.com/jclian91/gitlab_ci_test。 CI/CD的含义   在现代软件工程中,CI即 持续集成(Continuous integration) ,CD有两重含义,即 持续交付(Co

    2024年02月10日
    浏览(61)
  • gitlab ci/cd+harbor+k8s实现一键部署(python项目)

    使用 kaniko 构建 Docker 镜像 如果仓库使用http

    2024年02月13日
    浏览(46)
  • 使用gitlab 自带 CI/CD 构建部署项目

    这里我用的是桥接模式 桥接模式方便局域网内的小伙伴一起使用 如果没有这个打算可跳过这步 编辑网络 vi /etc/sysconfig/network-scripts/ifcfg-你的网络名称 修改如下内容 这里我有句话要讲, 这些信息配置完成后出现\\\"网络不可达\\\" 需要把 BOOTPROTO 改为 dhcp 详情可参考 处理网络不可达

    2024年02月12日
    浏览(48)
  • 基于SNAT+DNAT发布内网K8S及Jenkins+gitlab+Harbor模拟CI/CD的综合项目

    目录 项目名称 项目架构图 项目环境 项目概述 项目准备 项目步骤 一、修改每台主机的ip地址,同时设置永久关闭防火墙和selinux,修改好主机名,在firewalld服务器上开启路由功能并配置snat策略。 1. 在firewalld服务器上配置ip地址、设置永久关闭防火墙和selinux,并修改好主机名

    2024年02月09日
    浏览(37)
  • 极狐GitLab 15.7 版本发布,更多代码托管、CI/CD、安全合规更新【一】

    GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 更多关于极狐GitLab 或者 DevOps 的最佳实践,可以关注文末的极狐GitLab 公众号。 极狐GitLab 在

    2024年03月20日
    浏览(29)
  • 【基于 GitLab 的 CI/CD 实践】01、GitLab CI/CD 基础概念

    目录 一、为什么要做 CI/CD ? 1.1 背景-传统的应用开发发布模式 问题 1.2 持续集成与持续交付 持续集成(CI) 持续交付(CD) 持续部署(CD) 1.3 CI/CD 的价值体现 1.4 推荐常用的 CI/CD 工具 Jenkins GitLab 二、GitLab CI/CD 功能简介 2.1 GitLab 内置持续集成功能 持续集成(CI) 连续交付(

    2024年02月16日
    浏览(46)
  • Gitlab CI/CD 自动化打包部署前端(vue)项目

    一、虚拟机安装 1.vmware下载 2.镜像下载 3.Ubuntu 4.新建虚拟机 一直点下一步,直到点击完成。 5.分配镜像 二、Gitlab CI/CD 自动化部署项目 1.配置GitLab CI/CD: 2.生成SSH密钥对: 如果尚未生成,请在本地机器上生成一个SSH密钥对: 3.将SSH私钥添加到GitLab: 4.更新GitLab CI/CD配置: 5

    2024年03月13日
    浏览(47)
  • gitlab+jenkins+harbor实现CI/CD(2)——初级

    git安装 jenkins主机上安装docker-ce 配置仓库证书 测试 创建项目 创建一个freestyle project 在jenkins主机获取密钥 在gitlab上传公钥 在jenkins上传私钥 输入测试命令后保存 点击立即构建 查看控制台输出 工作路径 构建触发器,定时触发 安装插件 gitlab和 Cloudbee docker 配置gitlab 在网络设

    2024年02月09日
    浏览(38)
  • 实现基于 GitLab 的数据库 CI/CD 最佳实践

    数据库变更一直是整个应用发布过程中效率最低、流程最复杂、风险最高的环节,也是 DevOps 流程中最难以攻克的阵地。那我们是否能在具体的 CI/CD 流程中,像处理代码那样处理数据库变更呢? DORA(DevOps Research Assessment)是一家专注于 DevOps 的研究机构, 在该领域以专业与客

    2024年02月07日
    浏览(68)
  • Gitlab CI/CD概述

    CI/CD 是一种持续开发软件的方法,可以不断的进行构建、测试和部署代码迭代更改。这种迭代有助于减少基于错误或失败的版本进行开发新代码的可能性。使用这种方法,从新代码开发到部署,可以减少人工干预甚至不用干预。 达到持续的方法主要是: 持续集成 , 持续交付

    2024年02月12日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包