基于GitLab的CI&CD

git tag与GitLab CI/CD Pipeline 在此Pipeline中,deploy_dockerhub 阶段只有在有 git tag 打在当前提交时才会运行,它会将镜像推送到 Docker Hub,标签为提交的 tag 名称。git tag用于给版本库的某个提交打标签,以示重要的里程碑。访问 GitLab CI 页面,deploy_dockerhub 阶段会运行,将镜像标签为 v1.0.0 推送至 Docker Hub。通过 git tag,我们可以有选择性地触发 Pipeline 中的某些作业运行,这为我们实现持续交付提供了便利。 阅读详情

前言

  gitlab, 我相信大家一定不会陌生,它自带的ci/cd在持续集成,持续交付方面也有一定的能力。有些介绍 比如:gitlab和gitlab-runnber 部署过程咱们就不多说,相信很多文章都介绍的很清楚。

GitLab-Runner

1-1

  • Runner是一个执行任务的进程
  • Runner可以放在不同的用户、服务器,甚至本地机器上

GitLab-Runner 注册

2-2

  在安装gitlab-runner的机器上命令注册runner

gitlab-runner register
  1. 输入gitlab的服务URL,这个使用的是https://xxx.com/
  2. 输入gitlab-ci的Toekn 如图:2-2
  3. 关于集成服务中对于这个runner的描述
  4. 给这个gitlab-runner输入一个标记,这个tag非常重要,在后续的使用过程中需要使用这个tag来指定gitlab-runner
  5. 是否运行在没有tag的build上面。在配置gitlab-ci的时候,会有很多job,每个job可以通过tags属性来选择runner。这里为true表示如果job没有配置tags,也执行
  6. 是否锁定runner到当前项目
  7. 选择执行器,gitlab-runner实现了很多执行器,可用在不同场景中运行构建,我选择Shell模式

编写gitlab-ci.yml文件

配置简单说明:

关键字必要描述
script是CI/CD 过程需要执行的shell脚本
stage否一个job流程,默认test
variables否定义变量,GitLab上可配置
only否指定当前job适用的git refs(分支、Tag)列表
except否与only相反
tags否通过标签管理或匹配runner
allow_failure否指定当前job是否容错,正常job失败会跳过后续job流程
before_script否在当前job执行前执行的shell脚本
after_script否在当前job执行后执行的shell脚本
dependencies否指定依赖的job列表,默认顺序执行
when否依赖的上一个job执行什么状态后执行当前job: on_success on_failure always manual 默认on_success

前端 CICD

  下面涉及到相关服务IP或者涉密内容 用XXX ,这里简单说明一下,单纯的分了三个场景 正式环境 预发布 测试环境 。 这里就不举例子 vue项目打包成镜像了 k8s 部署vue项目 以前里面有重复的内容

  1. 在操作之前先登录docker
  2. 不同分支打不同的前端包,制作镜像 上传镜像
  3. 配置SSH免密登录,触发部署脚本
  4. 结束后,把之前打包的docker镜像清除,避免无限扩张
variables:
  IMAGE_VERSION: v1.0.1
  IMAGE_VERSION_TEST: v1.0.0
  IMAGE_ADDRESS: xxx/k8s/web-sxzz

stages:
  - build
  - staging
  - development

before_script:
  - docker login -u xxx -p xxx xxx

after_script:
  - docker rmi --force `docker images | grep web-sxzz | awk '{print $3}'`

build:
  stage: build
  tags:
    - web-sxzz
  only:
    - master
  cache:
    paths:
      - node_modules/
  script:
    - npm set registry https://registry.npm.taobao.org
    - npm install --progress=false
    - npm run build:prod
    - docker build -t "$IMAGE_ADDRESS:$IMAGE_VERSION.prod" .
    - docker push "$IMAGE_ADDRESS:$IMAGE_VERSION.prod"

staging:
  stage: staging
  tags:
    - web-sxzz
  only:
    - stag
  cache:
    paths:
      - node_modules/
  script:
    - npm set registry https://registry.npm.taobao.org
    - npm install --progress=false
    - npm run build:stage
    - docker build -t "$IMAGE_ADDRESS:$IMAGE_VERSION_TEST.stag" .
    - docker push "$IMAGE_ADDRESS:$IMAGE_VERSION_TEST.stag"

development:
  stage: development
  tags:
    - web-sxzz
  only:
    - dev
  cache:
    paths:
      - node_modules/
  script:
    - npm set registry https://registry.npm.taobao.org
    - npm install --progress=false
    - npm run build:test
    - docker build -t "$IMAGE_ADDRESS:$IMAGE_VERSION_TEST.test" .
    - docker push "$IMAGE_ADDRESS:$IMAGE_VERSION_TEST.test"
     # 需要配置ssh免密登录
    - ssh -t -t root@xxx -p 22 "/root/myDeployment/wfw-test/web-lxc/web-sxzz/deploy.sh"

配置SSH 免密登录

  gitlab-runner安装在: A服务器
  准备部署的服务器是: B服务器

1. 首先在A服务器检查 /home/gitlab-runner/.ssh 下面是否有 id_rsa.pub 文件
2. 如果没有的话 在A服务器上切换成 gitlab-runner 用户 

3. 使用ssh-keygen -t rsa生成ssh的公钥和私钥 // 回车之后3次回车即可
4. /home/gitlab-runner/.ssh 下会生成 id_rsa.pub 和 id_rsa 文件
5. 将id_rsa.pub 上传到 B服务器 
6. cat /id_rsa.pub >>/root/.ssh/authorized_keys
7. 重启 ssh服务 // centos7: systemctl restart sshd
8. 在A服务器上测试 ssh root@B服务地址

总结

   简单的ci/cd,欢迎批评指正~

Gitlab-Runner配置 Gitlab-Runner是一个非常强大的CI/CD工具。它可以帮助我们自动化执行各种任务,如构建、测试和部署等。Gitlab-Runner和Gitlab通过API通信,接收作业并提交到执行队列,Gitlab-Runner从队列中获取作业,并允许在不同环境下进行作业。 阅读详情

相关推荐

003.Gitlab配置runner

gitlab runner是用于执行 gitlab cicd任务的工具,最终执行gitlab cicd任务的组件就是runner。gitlab runner可以部署在Windows、Linux、Kubernetes中,可以通过包管理器、二进制、容器等方式进行部署。gitlab runner将监听gitlab服务器上由项目中的 .gitlab-ci.yml 文件定义的作业。当作业被触发时,gitlab runner将下载代码并执行任务。

木二 4250

gitlab-ci.yml关键字(五)tags 、only 、when

Gitlab CI 关键字

问白的博客 1万+

一起讨论NetCore 配合 Gitlab CI&CD 实践

引言 这是一个系列的文章,讲述的是一个中小型开发团队如何从零开始使用搭建基建 GitLab 代码托管平台,以及使用 GitLab Runner 实现 CI/CD 的故事。本系列通过部署一个完整的 .net core 项目来做配合实战,可能这个案例并不能适合每个人,但希望可以给刚接触 GitLab 以及 CI/CD 的小伙伴带来一些启发。对 GitLab 以及 CI/CD 有一定了解的,可以略过本文,直接开启下一章。 Gitlab CI&CD 是什么? 如上官方图示,可以理解为 Gitlab 给开发者

gg7894125的博客 671

GitLab-CI基础使用总结

1.1 如果某个Stage不需要进行Git操作拉取代码,可以通过variables指定Git_Strategy来skip:git-strategy默认为fetch 而非clone(复制整个仓库),在每个stage的过程中,默认的操作是:git fetch 来重新初始化gitlab-runner维护的本地仓库(如果.git文件不存在,说明这个仓库之前就么有,会退回执行git clone) 这样做是为了保持仓库始终和gitlab上同步,保证是最新的。

weixin_42313342的博客 5121

不用标注数据!用SAM 3零成本搞定遥感图像分割:SegEarth-OV3保姆级上手教程

本文介绍了如何利用SAM 3和SegEarth-OV3实现零标注遥感图像分割,提供从环境配置到结果优化的完整教程。通过开放词汇语义分割技术,用户无需标注数据即可快速获得专业级分割结果,适用于光伏板统计、灾害评估等场景。

weixin_30415113的博客 586

国产麒麟系统中的PaddleOCR离线绿色部署:高效安全的文字识别新纪元

摘要:本文详细介绍了PaddleOCR在银河麒麟V10SP1系统上的离线部署方案。通过Conda虚拟环境隔离依赖,采用离线包安装方式实现无网络部署,支持80+语言识别。重点讲解了模型量化剪枝优化、多线程处理等性能调优技巧,并提供了完整的OCR识别代码示例。该方案具有数据本地化处理的安全优势,适用于医疗票据数字化等对隐私要求严格的场景,同时解决了模型加载失败、内存不足等常见问题。

墨夶的博客 1228

gitlab进入项目下的CI&CD报错500

gitlabhq_production=# UPDATE projects SET runners_token = null, runners_token_encrypted = null where name = '报错项目名称';更新保存项目中的runners_token_encrypted。跟新后回到gitlib页面,错误消失。此时查看管理中心 --> 项目编。

liquid315的博客 460

基于UWB技术的自动跟随避障系统设计研究

基于UWB技术的自动跟随避障系统设计研究 摘要:目前我国针对自动跟随避障系统方面的研究较少,同时国内自动跟随避障系统仍然处在未成熟阶段,多数仍停留在应用蓝牙控制或摄像头捕捉这类跟随方式,但这类方式在实际应用过程中往往会出现易受干扰,精度差,易受环境干扰等问题,这不仅会降低自动跟随避障系统的性能,同时也会对用户造成诸多困扰。因此,就需要结合目前较为有效的UWB技术,对自动跟随避障系统进行设计。基于此,本文首先将会针对UWB技术展开概述,而后对基于UWB技术的自动跟随避障系统组成展开分析,进而对基于UWB技术的

qq_43543515的博客 7992

Gitlab CI&CD 在前端项目自动化构建部署中的实践

引言 现在大部分的公司都搭建了自己的Gitlab,除了Git的代码管理能力,Gitlab的CI&CD在项目的持续集成和部署上也尽力提高大家的工作效率。下面用我们项目的例子为大家引荐一下这套工具带来的便利。 Gitlab CI&CD是什么 如上官方图示,可以理解为Gitlab给开发者提供了一项功能,在代码提交后自动触发一段开发者自定义的脚本,以此来完成诸如但不限于构建部署的工作。 ...

AI早餐汇 5337

AD9361 官方例程

文章目录一、官方资料1.1 介绍1.2 下载 和 使用1.3 相关资料二、步骤2.1 在Vivado中构建HDL2.2 在SDK中构建No- OS总结 一、官方资料 1.1 介绍 HDL参考设计介绍:AD9361 HDL Reference Designs 无操作系统介绍:AD9361 No-OS Software 1.2 下载 和 使用 HDL下载:Download HDL 在Vivado中构建HDL:Building HDL No-OS下载:Download No-OS 1.3 相关资料 AD

weixin_44630490的博客 3万+

黑群晖二合一已损毁_手动修复黑群晖已损毁磁盘空间

lz的用法是这样的,一个中古级mac mini 2011上装有vmware esxi 7.6, 然后上面挂载了lz的华芸Asustor Nas的iscsi空间,lz用的是basic volume,然后esxi上面有虚拟的黑群晖6.2.2-24922,黑群晖的docker里跑着不可描述软件,但是发现下载速度过快时,比如有好几个文件同时下载,总速度超过60MB/s以后storage manager里很...

weixin_39669629的博客 1万+

搭建GitLab CI&CD(基于GitLab Runner)

搭建GitLab CI&CD(基于GitLab Runner) 完成了搭建GitLab Runner(基于Docker)之后,可以基于GitLab Runner搭建CI/CD流水线。 前言 如果是安装我的文章中的步骤搭建的GitLab,那么一定要在/srv/gitlab-runner/config目录下的config.toml文件中加上extra_hosts = ["gitlab.com:192.168.1.72"]设置GitLab Runner启动的D

Léon 536

稳压电源的隐形战场:动态特性如何影响你的嵌入式系统稳定性

本文深入探讨了稳压电源动态特性对嵌入式系统稳定性的关键影响,分析了HT7533和AMS1117等稳压芯片在输入阶跃响应和负载瞬态响应方面的性能差异。通过实测案例展示了不同场景下的动态特性表现,并提供了针对工业控制、IoT设备和射频系统的选型指南与优化策略,帮助工程师解决电源相关的隐蔽故障。

weixin_29204205的博客 609

Gitlab CI&CD 实战经验分享

引言现在大部分的公司都搭建了自己的Gitlab,除了Git的代码管理能力,Gitlab的CI&CD在项目的持续集成和部署上也尽力提高大家的工作效率。下面用我们项目的例子为大家引荐一下这套工具带来的便利。Gitlab CI&CD是什么如上官方图示,可以理解为Gitlab给开发者提供了一项功能,在代码提交后自动触发一段开发者自定义的脚本,以此来完成诸如但不限于构建部署的工作。为什么我们...

didi_cloud的博客 309

Mysql授权允许远程访问

前言 Mysql授权允许远程登录后,linux中安装的mysql可以与Navicat for Mysql(可视化)等连接,在可视化软件下管理数据库。 注意:不能使用临时密码 设置密码命令: alter user 'root'@'localhost' identified by '这里是你的密码'; 授权允许远程访问 一、授权命令: grant all privileges on *.* to '...

🏆 前端领域优质创作者 3万+

VT-Refine:基于仿真微调的视觉-触觉反馈双臂装配强化学习

本研究提出VT-Refine框架,通过融合真实世界示范、高保真触觉仿真与强化学习,解决高精度双臂装配任务。方法分为两阶段:首先利用少量人类示范数据预训练视觉-触觉扩散策略;随后在数字孪生仿真环境中进行强化学习微调。关键创新包括:开发GPU加速的触觉仿真模块精确模拟压阻式传感器;采用基于点云的多模态表征实现无缝的跨领域迁移。实验表明,该方法在五个双臂装配任务中显著提升性能,触觉反馈使成功率提高40%。研究首次实现仿真环境中的大规模双臂视觉-触觉强化学习及sim-to-real迁移,为接触密集型任务提供了新解决

2506_90492529的博客 1797

gitlab ci cd php,GitLab + Drone 构建 CI&CD 环境

环境操作系统: Centos 7.4Docker版本: 17.03Docker-Compose版本: 1.22搭建DroneGitlab生成ClientID与Secret构建docker-compose.yamlversion: '2'services:drone-server:image: drone/drone:0.8ports:- 8000:8000- 9000volumes:- /home...

weixin_42106299的博客 516

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

GitLab持续集成持续部署(CI&CD)

GitLab CI/CD介绍 首先使用一张图说明GitLab CI的工作流程: GitLab CI是 GitLab 提供的持续集成服务,只要在你的仓库根目录 创建一个.gitlab-ci.yml 文件, 并为该项目指派一个Runner,当有合并请求或者 push的时候就会触发build。 这个.gitlab-ci.yml 文件定义GitLab runner要做哪些操作。 默认有3个[st...

安澜公子的博客 6万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Gitlab CI&CD 子模块拉取

Gitlab CI&CD 子模块拉取 最近在使用gitlabCI的时候发现子模块的拉取,以及某些个项目内部使用脚本拉取第三方库的时候都需要项目的私钥。刚开始是直接在镜像中存在私钥,这就存在着只要获取了镜像就能获取私钥了,后面发现了gitlabci可以传递变量,那就可以完美解决这一个问题,现在先记录下。 在git项目中的Settings -> CI / CD -> Variab...

做自己不喜欢的博客 5832

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Dockerfile+Jenkinsfile+GitLab轻松实现.NetCore程序的CI&CD

一.相关介绍 Dockerfile:关于Dockerfile的使用说明,我在文章《让.NetCore程序跑在任何有docker的地方》中有说到,这里不在赘述,需要的可以先看下,本文主要介绍Jenkinsfile结合dockerfile配合使用,自动构建.NetCore应用程序。 Jenkinsfile :Jenkinsfile 是 Jenkins 2.x 或更高版本核心特性 Pipeline(流水线) 的脚本,或者说对于Jenkins 流水线的定义被写在一个叫Jenkinsfile的文本文件中,该.

Peyshine 524

CI&CD之Jenkins使用

部署安装jenkins。

m0_46652469的博客 138

4.添加Angular项目的CI脚本,提交到gitlab实现CI&CD

代码推送到gitlab上之后,现在我们就需要编写项目的ci文件,这样gitlab才能执行CI流程。 将项目关联到Runner 因为Runner可能有多个,项目也可能有多个,那到底哪个项目应该执行哪些Runner,这里需要指定下。当然,这也看你安装Runner的Runner的类型。 具体可以看这里的文档说明 docs.gitlab.com/ce/ci/runne… 看下我安装的gitlab-runn...

weixin_34248258的博客 690

gitlab run成功 但无法访问_Dockerfile+Jenkinsfile+GitLab轻松实现.NetCore程序的CI&CD

一.相关介绍 Dockerfile:关于Dockerfile的使用说明,我在文章《 让.NetCore程序跑在任何有docker的地方》中有说到,这里不在赘述,需要的可以先看下,本文主要介绍Jenkinsfile结合dockerfile配合使用,自动构建.NetCore应用程序。 Jenkinsfile :Jenkinsfile 是 Jenkins 2.x 或更高版本核心特性 Pipeline(流...

weixin_39565332的博客 133

【离线安装版】GitLab持续集成和持续部署(CI&CD)

GitLab持续集成和持续部署GitLab CI/CD介绍CI&CD部署流程一、环境说明二、动手操作(1)安装GitLab-Runner(2)注册Runner三、常用命令 GitLab CI/CD介绍 首先使用一张图说明GitLab CI的工作流程: GitLab CI是 GitLab 提供的持续集成服务,只要在你的仓库根目录 创建一个.gitlab-ci.yml 文件, 并为该项目指派一个Runner,当有合并请求或者 push的时候就会触发build。 这个.gitlab-ci.yml 文件定

奔跑吧,小代码 1737
上一篇: @ApiModel和@ApiModelProperty使用详解
下一篇: Spring boot 通过 wkhtmltopdf 实现URL转PDF
Zz_糖小七
博客等级 码龄10年 1732粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值