7.4 KiB
环境管理
配置应用环境, 如: 开发环境、测试环境、生产环境, 从而做到应用在不同环境的有不同的配置, 操作相互隔离。
应用列表
管理和维护应用, 每个应用在不同的环境都可以有不同的配置。
- 配置: 配置应用的基本信息, 构建操作, 发布操作
- 构建: 执行应用构建操作
- 发布: 创建应用发布任务
CI/CD>应用发布 - 同步: 同步构建发布配置到其他环境
- 复制: 复制当前应用, 会复制应用的环境变量, 构建配置, 发布配置
应用配置
配置应用的基本信息, 以及不同环境下的构建与发布配置。
配置时 机器环境变量 系统环境变量 应用环境变量 都可以在命令执行前进行替换。
⚡ 注意: 如果不配置应用的构建与发布配置, 则不能进行构建 (CI) 和发布 (CD) 操作
应用在配置后系统会将部分配置信息存储到环境变量中。
| key | 示例 | 描述 |
|---|---|---|
| bundle_path | target/app.jar | 宿主机构建产物路径 (绝对路径/基于版本仓库的相对路径) |
| transfer_path | /data/projects/build.jar | 产物传输目标机器绝对路径 |
| transfer_dir_type | dir | 产物为文件夹传输类型 (dir/zip) |
| release_serial | parallel | 发布序列方式 (serial/parallel) |
| exception_handler | skip_all | 异常处理类型 (skip_all/skip_error) |
构建配置
设计思路: 应用在发布之前需要先由宿主机进行构建, 生成一个可发布的产物, 发布时需要基于该产物进行发布操作。
构建产物路径 就是生成的产物文件路径, 这个路径可以是基于宿主机的绝对路径 或 基于版本仓库的相对路径 (如果配置了版本仓库)。
-
vue 项目构建后会生成一个 dist 文件夹, 这个路径就应该是
xxx/dist
如果构建完成后执行用 tar 执行压缩命令, 将 dist 文件夹压缩为 dist.tar 这里的路径就是xxx/dist.tar -
spring boot 项目构建后会生成一个可执行的 jar 文件, 这个路径就应该是
xxx/xxx.jar -
可能还会有其他更复杂的情况, 如: 构建完成后会在 a 文件夹生成一个文件, 在 b 文件夹生成一个文件夹。
这之后就应该在构建完成后执行mv命令, 移动到同一个文件夹,构建产物路径就应该设置为移动的这个文件夹 -
也有可能构建完成后不会生成产物, 或者已经将文件传输过了, 这时候这个路径就随便设置一个存在的文件即可
⚡ 注意: 如果产物路径是一个文件夹, 构建完成后会自动将次文件夹进行 zip 压缩, 如设置的路径为 xxx/dist 则会生成一个 xxx/dist.zip
⚡ 注意: 构建产物路径中不能包含 \ 应该用 / 替换。
⚡ 注意: 执行结果的成功与否是通过执行命令的 exitcode 是否为 0 来判断的。
如果应用配置了版本仓库, 会有 添加检出操作 这个选项 (git clone)。
构建时系统提供了几个默认的变量, 使用 @{build.xxx} 来替换。
| key | 示例 | 描述 |
|---|---|---|
| build_id | 10 | 构建id (数据库自增) |
| build_seq | 1 | 当前环境该应用的构建序列 |
| vcs_home | /orion/vcs/2/10 | 当前应用配置的版本仓库的 clone 目录 (如果有) |
| vcs_event_home | /orion/vcs/event/2 | 版本仓库的 (获取分支/commit) 目录(只有一个 ) |
| branch | origin/master | 构建所选的 branch |
| commit | 8ab50bada8525f6670c36114ad46baa70efda820 | 构建所选的 commit |
发布配置
设计思路: 发布的应用可能是以集群的形式发布的, 可能会有多台机器同时发布一个应用, 基于选择的构建版本, 进行发布操作。
传输操作的 产物传输路径 是将选择的构建版本生成的产物分发到发布机器后的绝对路径。
如果构建产物是一个普通文件 文件夹传输类型 无需修改
如: 构建产物是 xxx.jar 这里可以配置为 /data/projects/build.jar
如果构建产物是一个文件夹, 这里可选择传输产物文件夹 文件夹 或者 产物文件夹的zip压缩文件 zip
如: 构建产物是 xxx/dist 文件夹, 文件夹传输类型选择 文件夹 这里可以配置为 /data/projects/dist
文件夹传输类型选择 zip 这里可以配置为 /data/projects/dist.zip 然后在进行解压
⚡ 注意: 产物传输路径中不能包含 \ 应该用 / 替换。
⚡ 注意: 执行结果的成功与否是通过执行命令的 exitcode 是否为 0 来判断的。
发布时系统提供了几个默认的变量, 使用 @{release.xxx} 来替换。
| key | 示例 | 描述 |
|---|---|---|
| release_id | 10 | 发布id |
| release_title | 紧急发布 | 发布标题 |
| transfer_path | /data/projects/build.jar | 传输路径 |
流水线配置
设计思路: 以流水线的形式执行应用构建及发布, 一个流水线任务同时执行项目的所有模块的构建以及发布。
- 执行: 创建流水线任务
CI/CD>流水线任务 - 配置: 配置流水线执行操作
环境变量
配置不同环境的应用环境变量, 不同环境之间的变量是相互隔离的。
系统提供了几个默认的应用变量, 使用 @{app.xxx} 来替换。
| key | 示例 | 描述 |
|---|---|---|
| app_id | 1 | 应用id |
| app_name | 订单服务 | 应用名称 |
| app_tag | order | 应用标签 |
| profile_id | 1 | 应用环境id |
| profile_name | 开发环境 | 应用环境名称 |
| profile_tag | dev | 应用环境标签 |
示例
# 当前应用 名称: 订单服务
# 当前环境 名称: 测试环境
# 机器环境变量 profile: dev
# 应用环境变量 xmx: 128m; xms: 64m
# 执行命令
echo @{app.app_name}
echo @{app.profile_name}
java -jar xxx.jar --spring.profiles.active=@{machine.profile} -Xmx@{app.xmx} -Xms@{app.xms}
# 命令在执行前会被替换为
echo 订单服务
echo 测试环境
java -jar xxx.jar --spring.profiles.active=dev -Xmx128m -Xms64m
⚡ 注意: 切换视图后保存只会增量保存, 并不会删除变量
版本仓库
配置应用的版本仓库, 仅支持 git, 用于构建时选择构建的 branch 以及 commit。
可以通过 密码 或 令牌 方式导入仓库。
- 初始化: 初始化版本仓库, 验证密码或者token
vcs_event_home - 重新初始化: 重新初始化版本仓库
vcs_event_home