使用 GitOps 实现应用持续部署
GitOps 是一种通过 Git 仓库作为应用配置和部署的唯一真实来源的持续交付方法。本文将详细介绍如何在 Rainbond 平台上实现 GitOps 持续部署流程,包括代码仓库对接、自动构建配置及完整部署流程。
Rainbond 支持两种 GitOps 持续部署方式:
- 通过 OAuth 对接 Git 仓库,基于源码创建组件是通过打开自动构建按钮,Rainbond 会自动在对应的仓库中配置 WebHook。
- 手动配置 WebHook,在代码仓库中配置 WebHook 地址,并设置触发条件。
前提条件
- 已安装并配置 Rainbond 平台
- 拥有 GitHub、GitLab 或 Gitee 等代码仓库的管理员权限
- 拥有 Rainbond 平台的团队管理员或平台管理员权限
- 确保网络连接畅通,代码仓库和 Rainbond 平台可以相互访问
一、对接代码仓库并配置自动构建
Rainbond 支持对接多种 Git 代码仓库,通过 OAuth 协议实现授权认证,目前支持 GitHub、GitLab 和 Gitee 三种代码仓库。
对接 GitHub
创建 GitHub OAuth Apps
- 登录 GitHub 账号,进入 Settings -> Developer settings -> OAuth Apps -> New OAuth App
- 填写以下信息:
- Application name:自定义应用名称,例如 "Rainbond GitOps"
- Homepage URL:Rainbond 访问地址,例如
https://rainbond.com
- Authorization callback URL:回调地址,格式为
{Rainbond地址}/console/oauth/redirect
,例如https://rainbond.com/console/oauth/redirect
- 点击 Register application 完成创建
- 创建完成后,记录生成的 Client ID 和 Client Secret
在 Rainbond 中配置 OAuth
- 登录 Rainbond 平台,
- 全局配置:进入 平台管理 -> 设置 -> 基础设置 -> OAuth 第三方服务集成 -> 添加
- 个人配置:进入 个人中心 -> Git私有仓库 -> 添加
- 填写以下信息:
- OAuth 类型:选择 github
- 名称:自定义名称,例如 "GitHub"
- 客户端 ID:填写 GitHub OAuth Apps 中的 Client ID
- 客户端密钥:填写 GitHub OAuth Apps 中的 Client Secret
- 回调地址:默认为当前 Rainbond 访问地址
- 点击 确认 完成配置
对接 GitLab
创建 GitLab Applications
- 登录 GitLab 账号,进入 User Settings -> Applications
- 填写以下信息:
- Name:自定义名称,例如 "Rainbond GitOps"
- Redirect URL:回调地址,格式为
{Rainbond地址}/console/oauth/redirect
,例如https://rainbond.com/console/oauth/redirect
- Scopes:勾选
api
read_user
read_repository
- 点击 Save application 完成创建
- 记录生成的 Application ID 和 Secret
注意:如果使用的是 GitLab 10.6 及以上版本,需要允许向本地网络发送 Webhook 请求。进入 Admin area -> settings -> OutBound Request,勾选
Allow requests to the local network from hooks and services
。
在 Rainbond 中配置 OAuth
- 登录 Rainbond 平台,
- 全局配置:进入 平台管理 -> 设置 -> 基础设置 -> OAuth 第三方服务集成 -> 添加
- 个人配置:进入 个人中心 -> Git私有仓库 -> 添加
- 填写以下信息:
- OAuth 类型:选择 gitlab
- 名称:自定义名称,例如 "GitLab"
- 服务地址:GitLab 访问地址,例如
https://gitlab.example.com
- 客户端 ID:填写 GitLab Applications 中的 Application ID
- 客户端密钥:填写 GitLab Applications 中的 Secret
- 回调地址:默认为当前 Rainbond 访问地址
- 点击 确认 完成配置
对接 Gitee
创建 Gitee 第三方应用
- 登录 Gitee 账号,进入 设置 -> 第三方应用 -> 创建应用
- 填写以下信息:
- 应用名称:自定义名称,例如 "Rainbond GitOps"
- 应用主页:Rainbond 访问地址,例如
https://rainbond.com
- 应用回调地址:回调地址,格式为
{Rainbond地址}/console/oauth/redirect
,例如https://rainbond.com/console/oauth/redirect
- 权限:勾选
user_info
projects
hook
- 点击 创建应用 完成创建
- 记录生成的 Client ID 和 Client Secret
在 Rainbond 中配置 OAuth
- 登录 Rainbond 平台,
- 全局配置:进入 平台管理 -> 设置 -> 基础设置 -> OAuth 第三方服务集成 -> 添加
- 个人配置:进入 个人中心 -> Git私有仓库 -> 添加
- 填写以下信息:
- OAuth 类型:选择 gitee
- 名称:自定义名称,例如 "Gitee"
- 服务地址:填写
https://gitee.com
- 客户端 ID:填写 Gitee 第三方应用中的 Client ID
- 客户端密钥:填写 Gitee 第三方应用中的 Client Secret
- 回调地址:默认为当前 Rainbond 访问地址
- 点击 确认 完成配置
OAuth 账号认证
在完成 OAuth 配置后,需要进行账号认证与第三方平台互联:
- 点击 Rainbond 页面右上角的用户头像
- 选择 个人中心 -> OAuth 账号绑定
- 在对应的代码仓库平台(GitHub/GitLab/Gitee)点击 去认证
- 按照页面引导完成授权认证过程
基于源码仓库创建应用并配置自动部署
- 完成代码仓库对接后,可以基于源码创建应用并配置自动部署。
- 进入 Rainbond 团队视图,点击 新增 -> 基于源码创建组件
- 选择已对接的代码仓库(GitHub/GitLab/Gitee)
- 浏览并选择要部署的代码项目
- 填写组件名称、应用名称等基本信息
- 打开自动构建开关。
- 点击 创建组件 开始构建
- 在组件创建完成后,可以配置自动构建实现代码提交后的自动部署:
- 进入组件详情页,点击 构建源
- 设置触发关键字,例如
@deploy
(可自定义)
说明:触发关键字是 Git commit 信息中包含的特定字符串,只有当提交信息中包含该关键字时,才会触发自动构建。
二、手动配置 Webhook 实现自动构建
开启 Rainbond Git Webhook
开启组件 Git Webhook 在 组件 -> 构建源 中打开 Git-Webhook 自动构建功能,复制生成的 hook 地址。