当前位置: 首页 > news >正文

项目:Gitlab HSD CI/CD总结

核心成分:

  • gitlab-ci.yaml 定义部署的 jobs(操控 runner)
  • gitlab runner 负责运行 jobs(注册 / 启动容器)
  • pipeline:执行 gitlab-ci,将 jobs 分配给 runner(不用管)
  • vault 存储环境变量(lets 拉取)

gitlab-runner:

不算特别了解
存在多种形式,可以是 docker 容器、k8s pod 或者整个 node。
runner 本身也可以定义 executor,如 docker 或 shell。如果是 docker,可以在 gitlab-ci 定义用哪个镜像。

HSD 在部署阶段在 20E 用 docker + shell executor 注册 runner,大致流程如下:
1). 从 gitlab 设置页面注册新的 runner,指定 tag 并记录 token
2). 用 token 设置 config 文件
3). docker run 运行 runner 镜像,并用 config 文件配置

gitlab-ci:

  • 可以定义 stages 和 jobs。通常而言,按照 stages 的顺序执行,每个 stages 的所有 jobs 完成后再执行下一个。

  • jobs 需要设置的地方有 script、tag 和 image:
    script 描述每个 job 执行的脚本
    tag 指定分配给哪个 runner 执行
    image 在 executor 是 docker / k8s 容器的情况下指定镜像

  • build job:
    用了 gcr.io/kaniko-project/executor 的镜像。kaniko 专门用来编译镜像。编译完成后推送到 gitlab(在 --destination 定义推送的库)
    在推送时,设置 CI_COMMIT_SHORT_SHA 为镜像版本

  • deploy job:
    用 lets 拉取 vault 的变量,生成一长串代码 cmd,然后通过 ssh 在 20E 执行代码。
    cmd 内容:用 export 赋值环境变量后执行 docker pull

  • 环境变量:
    CI_REGISTRY:gitlab 拉取镜像的 url。虽然 registry 和 repo 中文都算库,但 registry 包含多个 repo
    CI_REGISTRY_IMAGE:默认的镜像注册 url,等于 $CI_REGISTRY/$CI_PROJECT_PATH
    CI_PROJECT_PATH:repo 的路径
    CI_PROJECT_DIR:项目根目录在放 runner 的地址,用来获取文件
    CI_COMMIT_TAGCI_COMMIT_SHACI_COMMIT_SHORT_SHA:git commit 的编号。CI_COMMIT_SHORT_SHA 是常用的8字符编码。
    CI_REGISTRY_USERCI_REGISTRY_PASSWORD:每个 job 自动生成的账户,用于推送 / 拉取 gitlab 仓库的镜像。

http://www.lryc.cn/news/571832.html

相关文章:

  • 从零Gazebo中实现Cartographer算法建图(新目录)
  • Win11用户尽快删除更新!微软6月又推Bug
  • VGG-19(Visual Geometry Group)模型
  • Linux系统移植11:修改网络驱动
  • 获取jenkins中的构建数据
  • FPGA基础 -- Verilog行为级建模之时序控制
  • markRaw
  • 【java中使用stream处理list数据提取其中的某个字段,并由List<String>转为List<Long>】
  • 爱普特APT32F1104C8T6单片机 高抗干扰+硬件加密双保障
  • 支持向量机(SVM)例题
  • VS Code自动删除末尾空行设置
  • 无需公网IP:Termux+手机+内网穿透实现Minecraft远程多人联机
  • Python从入门到精通
  • Python数据操作
  • Docker搭建RabbitMQ集群环境
  • 机器学习重构光子学设计范式:从智能器件到前沿系统
  • 【力扣每日一题】划分数组并满足最大差限制
  • iOS开发中的安全实践:如何通过Ipa混淆与加固确保应用安全
  • AI 技术落地实战:开发流程优化、行业场景重塑与前沿应用洞察
  • Evertz SVDN 3080ipx-10G Web管理接口任意命令注入及认证绕过漏洞(CVE-2025-4009)
  • Hive 逻辑优化器
  • 持续集成 CI/CD-Jenkins持续集成GitLab项目打包docker镜像推送k8s集群并部署至rancher
  • 京东618带火四大消费 即时零售和生活服务迎来爆发
  • 几种大功率远距传输WiFI解决方案
  • Spring Boot 常用注解整理
  • 支持selenium的chrome driver更新到137.0.7151.119
  • 面向智能制造场景的永磁同步电机预测控制系统设计
  • python大学校园旧物捐赠系统
  • 火山 RTC 引擎12----合流转推 集成
  • (LeetCode 每日一题) 2966. 划分数组并满足最大差限制 (贪心、排序)