update document.

This commit is contained in:
lijiahang
2022-04-26 09:17:27 +08:00
parent dd21d2d81b
commit 8e09e4d375
43 changed files with 486 additions and 65 deletions
+16 -4
View File
@@ -1,6 +1,7 @@
## orion-ops 是什么
`orion-ops` 一站式自动化运维及自动化部署平台, 无 Agent 的方式接入应用, 使用多环境的概念, 提供了机器管理、WebTerminal、 WebSftp、 机器批量执行、日志在线查看、定时调度任务、应用环境维护、应用构建及发布任务 (CI / CD) 等功能, 帮助开发人员快速定位问题, 致力于企业级应用。
`orion-ops` 一站式自动化运维及自动化部署平台, 无 Agent 的方式接入应用, 使用多环境的概念, 提供了机器管理、WebTerminal、 WebSftp、 机器批量执行、日志在线查看、定时调度任务、应用环境维护、应用构建及发布任务 (CI / CD)、操作流水线等功能, 帮助开发人员快速定位问题,
致力于企业级应用。
Github: https://github.com/lijiahangmax/orion-ops
Gitee: https://gitee.com/lijiahangmax/orion-ops
@@ -76,12 +77,23 @@ Demo: http://101.43.254.243/ops/#/
![发布列表](./assert/img/release_list.png "发布列表")
![发布日志](./assert/img/release_log.png "发布日志")
> 流水线任务
![流水线配置](./assert/img/pipeline_list.png "流水线配置")
![流水线任务](./assert/img/pipeline_record_list.png "流水线任务")
> 消息
![操作日志](./assert/img/operator_log.png "操作日志")
![站内信](./assert/img/webside_message.png "站内信")
## 联系我
<img src="./assert/img/concat_wx.jpg" alt="微信" width="350px"/>
<img src="./assert/img/concat_wx.jpg" alt="微信" width="268px"/>
## 支持一下
<img src="./assert/img/support_wx.png" alt="微信" width="350px"/>
<img src="./assert/img/support_zfb.jpg" alt="支付宝" width="350px"/>
<img src="./assert/img/support_pay.jpg" alt="收款码" width="540px"/>
## License
+7 -1
View File
@@ -5,6 +5,7 @@
* [设计概念](about/concepts.md)
* 快速开始
* [docker安装](quickstart/docker-install.md)
* [普通安装](quickstart/install.md)
* [FAQ](quickstart/faq.md)
@@ -13,9 +14,14 @@
* [执行管理](operator/exec.md)
* [调度任务](operator/scheduler.md)
* [应用管理](operator/app.md)
* [CD/CD](operator/ci-cd.md)
* [CI/CD](operator/ci-cd.md)
* [用户管理](operator/user.md)
* [系统管理](operator/system.md)
* 进阶指南
* [二次开发](advance/second-dev.md)
*
* 配置模板
* [java-springboot 项目](template/java-springboot-template.md)
* [java-tomcat 项目](template/java-tomcat-template.md)
* [node-vue 项目](template/node-vue-template.md)
+23 -5
View File
@@ -1,11 +1,29 @@
## 1.1.0-beta
`2022-04-26` `preview`
🌈 添加应用流水线功能
🔨 添加日志颜色, 修改日志排版, 可以更直观的查看日志
🔨 改为异步初始化版本仓库, 减少等待时间
🔨 现在查看时日志适配 `ANSI` 颜色转义码 `/x1b[m`
🔨 系统统计分析去除 `vcs` 统计 (可能存在 `node_modules` 删除时导致oom)
🔨 应用配置时路径不能包含 `\`
🐞 修复打开 terminal 模态框, 终端字体拥挤
🐞 修复最大化 terminal 模态框, 终端字体看不到
🐞 修复创建应用环境后需要手动刷新页面才能重新加载头部选择组件
🐞 修复部分样式
⭐ 本次更新文档提供了应用发布文档
[如何升级](/about/update.md?id=_101-gt-110-beta)
## 1.0.1
`2022-04-01` `release`
🌈 系统线程池指标
🌈 系统站内信功能
🌈 应用构建/发布统计
🐞 日志面板读取文件错误的bug
🌈 添加系统线程池指标
🌈 添加系统站内信功能
🌈 添加应用构建/发布统计
🐞 修复日志面板读取文件错误的bug
⭐ 愚人节快乐
[如何升级](/about/update.md?id=_100-gt-101)
@@ -14,7 +32,7 @@
`2022-03-24` `release`
🌈 调度任务执行统计
🌈 添加调度任务执行统计
🔨 WebTerminal Modal 支持开启多个窗口以及最小化
🔨 记录终端连接, Sftp 连接的用户操作日志
🔨 机器默认文件追踪命令可通过机器环境变量配置
+14 -8
View File
@@ -30,6 +30,7 @@
* 定时发布
* 回滚发布
* 应用构建/发布统计
* CI/CD 流水线操作
* 日志
* tail
* 日志列表
@@ -43,22 +44,29 @@
* 登陆IP绑定
* IP黑白名单
* 系统线程池指标
* 站内信通知
### 开发中 ⏱
* 站内信通知
* 机器连接超时时间, 重试次数在环境变量中可配置
* 应用发布配置中传输操作可选使用 sftp / scp
### 未开始 ⏳
* CI/CD 流水线操作
* docker支持
* 机器监控
* 机器监控(CPU 内存 IO NET)
* buildChange
* 导入导出信息
* 日志支持最大最小化
* 清理定时数据: 批量执行, 终端日志, 发布, 构建, 流水线
* 批量上传文件
* 选择 tag 构建
* 流水线统计
* terminal 代码重构
* log-appender 代码重构
### 重构中 🔨
无
* 应用统计改为tab形式 (视图 / 折线图)
### 不确定 ❔
@@ -73,6 +81,4 @@
### 已放弃 ❌
* ~~log-appender 改为 伪终端~~ (底层无法支持)
* ~~SFTP 拖拽移动~~ (实现复杂)
* ~~SFTP 拖拽移动~~ (实现过于复杂)
+78
View File
@@ -1,5 +1,83 @@
⚡ 注意: 应用不支持跨版本升级
## 1.0.1 > 1.1.0-beta
> sql 脚本
```sql
ALTER TABLE `orion-ops`.`web_side_message`
MODIFY COLUMN `create_time` datetime(4) NULL DEFAULT CURRENT_TIMESTAMP(4) COMMENT '创建时间' AFTER `deleted`,
MODIFY COLUMN `update_time` datetime(4) NULL DEFAULT CURRENT_TIMESTAMP(4) ON UPDATE CURRENT_TIMESTAMP(4) COMMENT '修改时间' AFTER `create_time`;
ALTER TABLE `orion-ops`.`application_action_log`
MODIFY COLUMN `run_status` tinyint(4) NULL DEFAULT 10 COMMENT '状态 10未开始 20进行中 30已完成 40执行失败 50已跳过 60已终止' AFTER `log_path`;
CREATE TABLE `application_pipeline_task` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`pipeline_id` bigint(20) NULL DEFAULT NULL COMMENT '流水线id',
`pipeline_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '流水线名称',
`profile_id` bigint(20) NULL DEFAULT NULL COMMENT '环境id',
`profile_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '环境名称',
`profile_tag` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '环境tag',
`exec_title` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '执行标题',
`exec_description` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '执行描述',
`exec_status` int(11) NULL DEFAULT NULL COMMENT '执行状态 10待审核 20审核驳回 30待执行 35待调度 40执行中 50执行完成 60执行停止 70执行失败',
`timed_exec` tinyint(4) NULL DEFAULT NULL COMMENT '是否是定时执行 10普通执行 20定时执行',
`timed_exec_time` datetime(4) NULL DEFAULT NULL COMMENT '定时执行时间',
`create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人id',
`create_user_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人名称',
`audit_user_id` bigint(20) NULL DEFAULT NULL COMMENT '审核人id',
`audit_user_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '审核人名称',
`audit_time` datetime(4) NULL DEFAULT NULL COMMENT '审核时间',
`audit_reason` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '审核备注',
`exec_user_id` bigint(20) NULL DEFAULT NULL COMMENT '执行人id',
`exec_user_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '执行人名称',
`exec_start_time` datetime(4) NULL DEFAULT NULL COMMENT '执行开始时间',
`exec_end_time` datetime(4) NULL DEFAULT NULL COMMENT '执行结束时间',
`deleted` tinyint(4) NULL DEFAULT 1 COMMENT '是否删除 1未删除 2已删除',
`create_time` datetime(4) NULL DEFAULT CURRENT_TIMESTAMP(4) COMMENT '创建时间',
`update_time` datetime(4) NULL DEFAULT CURRENT_TIMESTAMP(4) ON UPDATE CURRENT_TIMESTAMP(4) COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `pipeline_id_idx`(`pipeline_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '应用流水线任务' ROW_FORMAT = Dynamic;
CREATE TABLE `application_pipeline_task_detail` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`pipeline_id` bigint(20) NULL DEFAULT NULL COMMENT '流水线id',
`pipeline_detail_id` bigint(20) NULL DEFAULT NULL COMMENT '流水线详情id',
`task_id` bigint(20) NULL DEFAULT NULL COMMENT '流水线任务id',
`rel_id` bigint(20) NULL DEFAULT NULL COMMENT '引用id',
`app_id` bigint(20) NULL DEFAULT NULL COMMENT '应用id',
`app_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '应用名称',
`app_tag` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '应用tag',
`stage_type` tinyint(4) NULL DEFAULT NULL COMMENT '阶段类型 10构建 20发布',
`stage_config` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '阶段操作配置',
`exec_status` int(11) NULL DEFAULT NULL COMMENT '状态 10未开始 20进行中 30已完成 40执行失败 50已跳过 60已终止',
`exec_start_time` datetime(4) NULL DEFAULT NULL COMMENT '执行开始时间',
`exec_end_time` datetime(4) NULL DEFAULT NULL COMMENT '执行结束时间',
`deleted` tinyint(4) NULL DEFAULT 1 COMMENT '是否删除 1未删除 2已删除',
`create_time` datetime(4) NULL DEFAULT CURRENT_TIMESTAMP(4) COMMENT '创建时间',
`update_time` datetime(4) NULL DEFAULT CURRENT_TIMESTAMP(4) ON UPDATE CURRENT_TIMESTAMP(4) COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `rel_id_idx`(`pipeline_id`, `pipeline_detail_id`, `task_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '应用流水线任务详情' ROW_FORMAT = Dynamic;
CREATE TABLE `application_pipeline_task_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`task_id` bigint(20) NULL DEFAULT NULL COMMENT '流水线任务id',
`task_detail_id` bigint(20) NULL DEFAULT NULL COMMENT '流水线任务详情id',
`log_status` tinyint(4) NULL DEFAULT NULL COMMENT '日志状态 10创建 20执行 30成功 40失败 50停止 60跳过',
`stage_type` tinyint(4) NULL DEFAULT NULL COMMENT '阶段类型 10构建 20发布',
`log_info` varchar(1024) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '日志详情',
`deleted` tinyint(4) NULL DEFAULT 1 COMMENT '是否删除 1未删除 2已删除',
`create_time` datetime(4) NULL DEFAULT CURRENT_TIMESTAMP(4) COMMENT '创建时间',
`update_time` datetime(4) NULL DEFAULT CURRENT_TIMESTAMP(4) ON UPDATE CURRENT_TIMESTAMP(4) COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `record_idx`(`task_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '应用流水线任务日志' ROW_FORMAT = Dynamic;
```
## 1.0.0 > 1.0.1
> sql 脚本
+4 -3
View File
@@ -8,7 +8,8 @@
* Nginx
* npm / yarn
⚡ 注意: windows 环境二次开发需要安装 OpenSSH Server
⚡ maven 推荐使用 阿里云 mirror
⚡ windows 环境二次开发需要安装 OpenSSH Server
### 配置
@@ -40,7 +41,8 @@
```
5. 运行
后端服务启动时需要设置启动参数 `--generator-admin` 来生成默认管理员用户
后端服务启动时需要设置启动参数 `--generator-admin` 来生成默认管理员用户
启动参数 idea 中设置 `应用设置` > `Environment` > `Program arguments`
### 测试访问
@@ -54,4 +56,3 @@
如果是密码登录: 机器管理 > 机器列表 > `宿主机` > 更多 > 编辑 > 选择认证方式为密码 > 输入密码 > 确定
如果是秘钥登陆: 机器管理 > 机器秘钥 > 新建
配置完成后测试连接: 机器管理 > 机器列表 > `宿主机` > 更多 > 测试连接
Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

+28 -14
View File
@@ -8,7 +8,7 @@
* 配置: 配置应用的基本信息, 构建操作, 发布操作
* 构建: 执行应用构建操作
* 发布: 执行应用发布操作
* 发布: 创建应用发布任务 `CI/CD` > `应用发布`
* 同步: 同步构建发布配置到其他环境
* 复制: 复制当前应用, 会复制应用的环境变量, 构建配置, 发布配置
@@ -43,19 +43,22 @@
* 也有可能构建完成后不会生成产物, 或者已经将文件传输过了, 这时候这个路径就随便设置一个存在的文件即可
⚡ 注意: 如果产物路径是一个文件夹, 构建完成后会自动将次文件夹进行 `zip` 压缩, 如设置的路径为 `xxx/dist` 则会生成一个 `dist.zip`
⚡ 注意: 如果产物路径是一个文件夹, 构建完成后会自动将次文件夹进行 `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` 目录 (如果有) |
| branch | origin/master | 构建所选的 `branch` |
| commit | 8ab50bada8525f6670c36114ad46baa70efda820 | 构建所选的 `commit` |
| 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` |
> ##### 发布配置
@@ -66,9 +69,12 @@
如: 构建产物是 `xxx.jar` 这里可以配置为 `/data/projects/build.jar`
如果构建产物是一个文件夹, 这里可选择传输产物文件夹 `文件夹` 或者 产物文件夹的zip压缩文件 `zip`
如: 构建产物是 `xxx\dist` 文件夹, 文件夹传输类型选择 `文件夹` 这里可以配置为 `/data/projects/dist`
如: 构建产物是 `xxx/dist` 文件夹, 文件夹传输类型选择 `文件夹` 这里可以配置为 `/data/projects/dist`
文件夹传输类型选择 `zip` 这里可以配置为 `/data/projects/dist.zip` 然后在进行解压
⚡ 注意: 产物传输路径中不能包含 `\` 应该用 `/` 替换。
⚡ 注意: 执行结果的成功与否是通过执行命令的 `exitcode` 是否为 `0` 来判断的。
发布时系统提供了几个默认的变量, 使用 `@{release.xxx}` 来替换。
| key | 示例 | 描述 |
@@ -77,6 +83,13 @@
| release_title | 紧急发布 | 发布标题 |
| transfer_path | /data/projects/build.jar | 传输路径 |
### 流水线配置
设计思路: 以流水线的形式执行应用构建及发布, 一个流水线任务同时执行项目的所有模块的构建以及发布。
* 执行: 创建流水线任务 `CI/CD` > `流水线任务`
* 配置: 配置流水线执行操作
### 环境变量
配置不同环境的应用环境变量, 不同环境之间的变量是相互隔离的。
@@ -114,8 +127,9 @@ java -jar xxx.jar --spring.profiles.active=dev -Xmx128m -Xms64m
### 版本仓库
配置应用的版本仓库, 仅支持 `git`, 用于构建时选择构建的 `branch` 以及 `commit`。
可以通过 `密码` 或 `令牌` 方式导入仓库
可以通过 `密码` 或 `令牌` 方式导入仓库。
* 初始化: 初始化版本仓库, 验证密码或者token
* 重新初始化: 重新初始化版本仓库
* 清空: 清空应用构建历史版本, 会保留两个版本, 防止清空正在进行中的构建任务
* 初始化: 初始化版本仓库, 验证密码或者token `vcs_event_home`
* 重新初始化: 重新初始化版本仓库 `vcs_event_home`
[comment]: <> (* 清空: 清空应用构建历史版本, 会保留两个版本, 防止清空正在进行中的构建任务)
+19 -8
View File
@@ -2,7 +2,7 @@
选择 `已配置` 的应用进行构建操作。
* 重新构建: 基于选择的 `branch` 和 `commit` 再次执行构建操作, 如果修改了应用构建配置, 则会是新的配置。
* 重新构建: 基于选择的 `branch` 和 `commit` 再次执行构建操作, 如果修改了应用构建配置, 则会是新的配置
* 停止: 停止本次构建操作
⚡ 按住 `Ctrl` 点击 `日志` 可以打开一个新页面, 否则将会打开一个模态框。
@@ -12,17 +12,28 @@
选择 `已配置` 的应用进行发布操作。
* 审核: 管理员按钮, 如果该环境配置了发布审核, 则需要管理员进行审核, 审核通过后才可以进行发布操作。
* 发布: 执行应用发布操作。
* 定时: 将未发布的发布操作设置定时发布时间。
* 复制: 复制发布应用, 如果修改了应用构建配置, 发布操作仍然是当前发布任务的发布操作。
* 回滚: 回滚发布应用, 再次执行当前发布任务的发布操作, 如果构建产物不存在则无法回滚。
* 取消: 取消应用定时发布。
* 停止: 停止本次发布操作。
* 审核: 管理员按钮, 如果该环境配置了发布审核, 则需要管理员进行审核, 审核通过后才可以进行发布操作
* 发布: 执行应用发布任务
* 定时: 将未发布的任务设置定时发布时间
* 复制: 复制发布应用, 如果修改了应用构建配置, 发布任务仍然是当前发布任务的发布操作
* 回滚: 回滚发布应用, 再次执行当前发布任务, 如果构建产物不存在则无法回滚
* 取消: 取消应用定时发布
* 停止: 停止本次发布任务
⚡ 按住 `Ctrl` 点击 `日志` 可以打开一个新页面, 否则将会打开一个模态框。
⚡ 只有 `已配置` 的应用才可以进行发布操作。
### 流水线任务
选择 `流水线` 进行执行操作。
* 审核: 管理员按钮, 如果该环境配置了发布审核, 则需要管理员进行审核, 审核通过后才可以进行执行操作
* 执行: 执行流水线任务
* 定时: 将未执行的任务设置定时执行时间
* 复制: 复制当前选择的流水线任务
* 取消: 取消定时执行流水线任务
* 停止: 停止本次流水线任务
### 构建统计
可以查看近七天的应用构建统计数据, 近十次构建视图, 以及调度统计图表。
+2 -1
View File
@@ -4,7 +4,8 @@
设计理念与批量执行相同, 只不过是不用人为去触发任务执行。
新建任务时鼠标悬停到执行时间上可以得到最近的执行时间。
⚡ 注意: 修改后状态会变为停用状态, 需要手动启用。
⚡ 注意: 修改后状态会变为停用状态, 需要手动启用。
⚡ 注意: 执行结果的成功与否是通过执行命令的 `exitcode` 是否为 `0` 来判断的。
### 执行记录
+3 -3
View File
@@ -2,10 +2,10 @@
系统用户列表。
* 解锁: 解锁已锁定的用户
* 禁用: 禁用用户使该用户无法登陆
* 日志: 查看操作日志
* 重置密码: 重置用户密码
* 解锁: 管理员按钮, 解锁已锁定的用户
* 禁用: 管理员按钮, 禁用用户使该用户无法登陆
* 重置密码: 管理员按钮, 重置用户密码
### 个人信息
+1
View File
@@ -0,0 +1 @@
后续补上...
+29 -1
View File
@@ -59,7 +59,6 @@ server {
⛔ 不建议上传特别大的文件, 可能会出现 `OOM`
<br/>
> ##### 8. 应用构建时提示 '版本控制仓库操作执行失败'?
应用管理 > 版本仓库 找到应用关联的仓库, 检查密码/token后 重新初始化即可
@@ -79,3 +78,32 @@ server {
将构建产物路径设置为一个已存在的文件的绝对路径即可
<br/>
> ##### 12. 为什么会找不到环境变量?
可以在执行命令的第一行设置 `source /etc/profile` 来加载环境变量
<br/>
> ##### 13. nohup 为什么无法启动程序?
执行命令行使用的伪终端关闭时会停止终端进程, 可以使用 sleep 来跳过
`(nohup java -jar springboot-0.0.1-SNAPSHOT.jar >> run.log 2>&1 &) && sleep 1`
<br/>
> ##### 14. 命令中途执行失败如何设置中断执行?
可以在执行命令的第一行设置 `set -e`
作用是: 当执行出现意料之外的情况时, 立即退出
<br/>
> ##### 15. 在调度任务、应用构建、应用发布 命令执行成功的依据是什么?
是获取命令的 `exitcode` 判断是否为 `0` 如果非0则代表命令执行失败
同理, 在命令的最后一行设置 `exit 1` 结果将会是失败, 可以用此来中断后续流程
<br/>
> ##### 16. docker 运行 orion-ops-service 失败提示 `sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)`
原因是用户创建时会生成默认的头像, 依赖于 `awt` 绘制
启动时需要添加 `RUN apk add --update ttf-dejavu fontconfig`
<br/>
+77
View File
@@ -0,0 +1,77 @@
#### springboot 项目模板
以一个普通的 maven 构建的 springboot 项目为例
构建操作为: `checkout` > `maven build`
发布操作为: `删除旧版文件` > `传输文件` > `nohup java -jar demo-1.0.0-SNAPSHOT.jar &`
<br/>
> 构建配置
![构建配置](../assert/img/template_boot_build.png "构建配置")
> 发布配置
![发布配置1](../assert/img/template_boot_release_1.png "发布配置1")
![发布配置2](../assert/img/template_boot_release_2.png "发布配置2")
#### 构建配置
> 构建产物路径
```
构建产物路径一般是在代码目录下的 target/xxx.jar
target/demo-1.0.0-SNAPSHOT.jar
```
> 构建操作1 检出代码
无需操作
> 构建操作2 构建应用
```
source /etc/profile
echo '开始构建'
cd @{build.vcs_home}
mvn -U clean install -DskipTests
echo '构建完成'
```
#### 发布配置
> 发布操作1 删除旧版文件
```
jarFile=/data/dist/demo.jar
if [ -f "$jarFile" ]; then
rm -rf $jarFile
echo '删除/data/dist/demo.jar'
fi
```
> 发布操作2 传输文件
```
设置一个传输产物文件的绝对路径
/data/dist/demo.jar
```
> 发布操作3 启动项目
```
source /etc/profile
jarName=demo.jar
# kill
PID=$(ps -ef | grep $jarName | grep -v grep | awk '{print $2}')
if [ ! -z $PID ]; then
kill -9 $PID
echo 'kill' $PID
fi
# 启动
echo '启动项目'
cd /data/dist
(nohup java -jar $jarName >> run.log 2>&1 &) && sleep 1
echo '启动完成'
```
+79
View File
@@ -0,0 +1,79 @@
#### tomcat 项目模板
以一个普通的 maven 构建的 web 项目为例
构建操作为: `checkout` > `maven build`
发布操作为: `删除 tomcat/webapps/ROOT 和 ROOT.war` > `传输ROOT.war` > `shutdown.sh` > `startup.sh`
<br/>
> 构建配置
![构建配置](../assert/img/template_tomcat_build.png "构建配置")
> 发布配置
![发布配置1](../assert/img/template_tomcat_release_1.png "发布配置1")
![发布配置2](../assert/img/template_tomcat_release_2.png "发布配置2")
#### 构建配置
> 构建产物路径
```
构建产物路径一般是在代码目录下的 target/xxx.war
target/demo-1.0.0-SNAPSHOT.war
```
> 构建操作1 检出代码
无需操作
> 构建操作2 构建应用
```
source /etc/profile
echo '开始构建'
cd @{build.vcs_home}
mvn -U clean install -DskipTests
echo '构建完成'
```
#### 发布配置
> 发布操作1 删除原有文件
```
ROOT_PATH=/data/apache-tomcat-9.0.62/ROOT
ROOT_WAR=/data/apache-tomcat-9.0.62/ROOT.war
if [ -d "$ROOT_PATH" ]; then
rm -rf $ROOT_PATH
echo '删除ROOT文件夹'
fi
if [ -f "$ROOT_WAR" ]; then
rm -rf $ROOT_WAR
echo '删除ROOT.war'
fi
```
> 发布操作2 传输文件
```
传输产物文件的绝对路径应该为 tomcat/webapps 下的 ROOT.war 或 项目名称.war
/data/apache-tomcat-9.0.62/webapps/ROOT.war
```
> 发布操作3 启动项目
```
cd /data/apache-tomcat-9.0.62/bin
# 关闭
echo '关闭项目'
./shutdown.sh
# 启动
echo '启动项目'
(nohup ./startup.sh >> start.log 2>&1 &) && sleep 1
echo '启动完成'
```
+82
View File
@@ -0,0 +1,82 @@
#### vue 项目模板
以一个普通的 npm 构建的 vue 项目为例
构建操作为: `checkout` > `npm i` > `npm run build`
发布操作为: `删除旧版文件` > `传输文件` > `复制到 nginx 静态目录` > `启动nginx`
<br/>
> 构建配置
![构建配置1](../assert/img/template_vue_build_1.png "构建配置1")
![构建配置2](../assert/img/template_vue_build_2.png "构建配置2")
> 发布配置
![发布配置1](../assert/img/template_vue_release_1.png "发布配置1")
![发布配置2](../assert/img/template_vue_release_2.png "发布配置2")
#### 构建配置
> 构建产物路径
```
构建产物路径一般是在代码目录下的 dist 目录
dist
```
> 构建操作1 创建公共node_modules
```
给不同环境下的每个应用创建公共 node_modules 目录, 以后每次构建都通过软链接的形式引用, 避免每次构建时都要全量安装依赖
这里的 @{app.profile_id} 代表应用环境id, @{app.app_id} 代表应用id, 在运行时会动态替换
mkdir -p /data/public/@{app.profile_id}/@{app.app_id}/node_modules
```
> 构建操作2 检出代码
无需操作
> 构建操作3 构建应用
```
source /etc/profile
cd @{build.vcs_home}
# 软连接 node_modules
ln -s /data/public/@{app.profile_id}/@{app.app_id}/node_modules .
# 构建
echo '开始构建'
cnpm i
cnpm run build
echo '构建完成'
```
#### 发布配置
> 发布操作1 删除原有文件
```
distPath=/data/dist-web/dist
if [ -d "$distPath" ]; then
rm -rf $distPath
echo '删除/data/dist-web/dist'
fi
```
> 发布操作2 传输文件
```
设置一个传输产物文件的绝对路径
/data/dist-web/dist
```
> 发布操作3 复制到 nginx 目录并且重启
```
target=/data/orion/web/test1
if [ -d $target ]; then
rm -rf $target
fi
mkdir $target
cp -r /data/dist-web/dist/* $target
service nginx restart
```