私网环境下如何使用云效流水线进行 CI/CD?

server/2024/9/24 7:26:19/

作者:怀虎

场景介绍

代码库、制品库等数据资产托管在内部办公网,公网不能访问,希望能够使用云效流水线进行 CICD 的编排和控制。

整体方案

云效流水线可以托管用户的私网环境内的机器,并将构建任务调度到这些机器上,从而确保整个构建过程,和代码库和制品库的交互在私网环境下进行。

在这里插入图片描述

在主机上安装 Runner 程序, 该程序需要能够访问到云效流水线的服务端,以便从服务端获取任务,并在执行任务的过程中上报日志和状态。

操作实践

3.1 创建私有构建集群

进入云效 Flow 首页 -> 全局设置 -> 构建集群管理页面:

1)点击新建构建集群,填入基础信息之后,完成私有构建集群创建。

在这里插入图片描述

2)进入私有构建集群,点击接入新节点,可以选择不同的方式接入构建节点。支持阿里云 ECS 的 Linux 和 Windows 机器,或者自己的 Linux、Windows 及 macOS机器,可以按需选择。

  • 如果是自己的机器,则可以选择手动安装 Runner 方式添加机器。复制 Runner 安装命令,在机器上执行,即可安装好 Runner 程序,该程序会是以服务的形式常驻在机器上,详见 Runner 文档。
  • 如果是阿里云 ECS 机器,则可以选择阿里云 ECS 方式添加机器,流水线会调用云助手 API 自动安装好 Runner 程序。

在这里插入图片描述
在这里插入图片描述

3)创建好私有构建集群之后,就可以创建流水线,并选择这个构建集群执行流水线任务了。

3.2 创建代码库服务连接

假设你内网的代码托管地址是 https://myrepo.com,为了在构建过程中和代码服务进行交互,需要配置代码库的服务连接。

云效 Flow 首页 -> 全局设置 -> 服务连接管理页面:

1)点击新建服务连接,并选择通用 Git 服务连接类型。

在这里插入图片描述

2)点击下一步,点击新建服务授权/证书,输入账密信息。

在这里插入图片描述
在这里插入图片描述

3)点击确定完成证书创建,回到服务连接页面,该证书会自动被选中,点击创建即可完成服务连接的创建。

在这里插入图片描述

3.3 创建流水线,配置代码源和构建任务

进入云效 Flow 首页 -> 我的流水线页面,点击新建流水线,选择空模板,可以选择可视化编排或者 YAML 化编排任一种方式创建流水线。下面以 YAML 化流水线编排为示例。

1)输入代码源配置 YAML,在 serviceConnection 关键字后面键入空格会进行自动补全,可以看到刚才创建的那个服务连接,并进行选择。

在这里插入图片描述

sources: my_repo:type: gitname: 我的代码源endpoint: http://myrepo.com/ns/code-repo.git  # 请换成你自己的代码仓库地址branch: mastertriggerEvents: pushcertificate:type: serviceConnectionserviceConnection: <your-service-connection-id>  # 请替换成上述创建好的服务连接ID

2)输入构建配置 YAML,在 runsOn 关键字后面键入空格会进行自动补全,可以看到刚才创建的私有构建集群,并进行选择。

在这里插入图片描述

sources: my_repo:type: gitname: 我的代码源endpoint: http://myrepo.com/ns/code-repo.git  # 请换成你自己的代码仓库地址branch: mastertriggerEvents: pushcertificate:type: serviceConnectionserviceConnection: <your-service-connection-id>  # 请替换成上述创建好的服务连接IDstages:build_stage:name: 构建阶段jobs:build_job:name: 构建任务runsOn: <your-build-cluster-id>  # 请替换成上述创建好的私有构建集群IDsteps:build_step:step: JavaBuildname: java构建with:jdkVersion: "1.8"mavenVersion: "3.5.2"run: "mvn -B clean package -Dmaven.test.skip=true -Dautoconfig.skip\n"

3)根据实际情况填入你自己的代码仓库地址、服务链接 ID、私有构建集群 ID 之后,保存并运行流水线。

3.3 运行流水线,执行代码拉取和构建任务

运行上述配置好的流水线,点击查看构建任务日志,可以看到构建任务运行在你自己的私有构建机器上,只需要你自己的私有构建机器能够访问到你的代码仓库即可,无需代码仓库出公网。

更多参考

在了解了上述基本用法后,可以继续阅读以下文档,以探索更多使用场景:
在这里插入图片描述

[1] YAML语法规范

https://help.aliyun.com/document_detail/609178.html?spm=a2c4g.2831722.0.i1

[2] 流水线 Runner

https://help.aliyun.com/document_detail/2825830.html?spm=a2c4g.2831722.0.i2

[3] 流水线缓存

https://help.aliyun.com/document_detail/2831720.html?spm=a2c4g.2831722.0.i3


http://www.ppmy.cn/server/97829.html

相关文章

k8s创建secret并在container中获取secret

k8s创建secret并在container中获取secret 本文使用的deployment和service与我的上一篇文章一样。link也放在下面了&#xff0c;如果不懂什么事deployment和service&#xff0c;可以先看我的上一篇文章。 k8s使用kustomize来部署应用 下面我们将通过创建secret开始。secret是我…

无缝编码体验:在PyCharm中高效使用远程文件编辑功能

标题&#xff1a;无缝编码体验&#xff1a;在PyCharm中高效使用远程文件编辑功能 引言 PyCharm作为业界领先的集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了强大的本地和远程开发功能。其中&#xff0c;远程文件编辑功能允许开发者直接在PyCharm中编辑存储在远…

未来已来:人工智能如何重塑Facebook的用户体验?

在数字化时代的浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;正成为推动技术进步和用户体验优化的核心力量。Facebook&#xff08;现Meta Platforms&#xff09;作为全球领先的社交媒体平台&#xff0c;正在充分利用人工智能技术&#xff0c;以重塑用户体验&#xff0…

RK3308--查看各声卡状态

参考链接 查看音频声卡 查看当前Soc的声卡状态 从这里可以看出&#xff1a; card0rockchiprk3308v card1rockchiprk3308p card7Loopback # cat /proc/asound/cards0 [rockchiprk3308v]: rockchip_rk3308 - rockchip,rk3308-vadrockchip,rk3308-vad1 [rockchiprk3308p]: roc…

CSDN博文中的数学公式显示——LaTeX数学公式一般语法

$MarkDown支持&#xff0c;HTML5文本也是支持$定制的。 (笔记模板由python脚本于2024年08月07日 21:18:36创建&#xff0c;本篇笔记适合初通Python&#xff0c;熟悉六大基本数据(str字符串、int整型、float浮点型、list列表、tuple元组、set集合、dict字典)的coder翻阅) 【学习…

Lua 脚本编程基础

引言 Lua 是一种轻量级的脚本语言&#xff0c;用标准C编写&#xff0c;设计目的是为了嵌入应用程序中&#xff0c;从而为应用程序提供灵活的扩展和定制功能。由于其简洁和高效&#xff0c;Lua 在游戏开发、嵌入式系统、网络编程等领域得到了广泛应用。 Lua 语言特点 轻量级&…

扑翼无人机仿生鸟技术详解

1. 仿生学原理 扑翼无人机仿生鸟技术&#xff0c;顾名思义&#xff0c;是受到自然界鸟类飞行机制的深刻启发而发展起来的一种无人机技术。仿生学原理在此技术中扮演着核心角色&#xff0c;它通过研究鸟类的翅膀结构、飞行姿态、气动效率、能量转换等生物学特性&#xff0c;力求…

2023年庐阳区青少年信息学科普日真题- 马拉松(marathon)

题目描述 环湖马拉松全程 L 公里&#xff0c;已经安排了 N 个补给点&#xff0c;位置已经确定。由于预算增加&#xff0c;现在可以增设 K 个补给点。如何安排新增的补给点使得相邻补给点间最大距离最小。相邻补给点间距离也包括起点与第一个补给点之间的距离和最后一个补给点与…