docs: 整理V1.2 部署文档
author刘洪青 <hongqing.liu@supwisdom.com>
Sat, 8 May 2021 07:44:44 +0000 (15:44 +0800)
committer刘洪青 <hongqing.liu@supwisdom.com>
Thu, 17 Jun 2021 05:08:58 +0000 (13:08 +0800)
deploy-manifests/charts/1.2.0000.认证授权服务安装部署手册(基于应用商店).md [new file with mode: 0644]
deploy-manifests/charts/1.2.0001.认证授权-授权服务数据初始化(角色).md [moved from deploy-manifests/k8s-rancher/1.2.0001.认证授权-授权服务数据初始化(角色).md with 71% similarity]
deploy-manifests/charts/1.2.0002.认证授权-云平台数据初始化(API路由、应用、菜单、角色权限).md [moved from deploy-manifests/k8s-rancher/1.2.0002.认证授权-云平台数据初始化(API路由、应用、菜单、角色权限).md with 100% similarity]
deploy-manifests/k8s-rancher/authx-platform.png [deleted file]

diff --git a/deploy-manifests/charts/1.2.0000.认证授权服务安装部署手册(基于应用商店).md b/deploy-manifests/charts/1.2.0000.认证授权服务安装部署手册(基于应用商店).md
new file mode 100644 (file)
index 0000000..3c4def5
--- /dev/null
@@ -0,0 +1,408 @@
+
+# 安装部署手册
+
+**业务中台之认证授权服务**
+
+
+* 修订历史
+
+版本 | 作者 | 日期 | 备注
+- | - | - | -
+v1 | 刘洪青 | 2020-06-10 | 初稿
+
+
+[TOC]
+
+
+## 安装准备
+
+### MySQL 初始配置及相关基础命令
+
+数据文件目录:/var/lib/mysql
+
+* 安装完成后,调整 mysql 服务的配置参数
+
+  查看当前配置:show variables;
+
+  最大连接数               max_connections
+  操作日志的保留时长         binlog_expire_logs_seconds
+
+  参考命令:
+  ```
+  set global max_connections = 1000;
+  set persist max_connections = 1000;
+
+  // 7天  86400 * 7
+  // 1天  86400
+  set global binlog_expire_logs_seconds = 86400 * 7;
+  set persist binlog_expire_logs_seconds = 86400 * 7;
+  ```
+
+  时区设置
+
+    确保MySQL 的时区设置为 GMT+8
+
+
+* 创建数据库帐号
+
+  参考命令:
+  ```
+  create user 'user'@'%' identified with mysql_native_password  by 'your_password';
+  ```
+
+
+* 创建 database
+
+  参考命令:
+  ```
+  create database `user` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
+  ```
+
+
+* 授予权限
+
+  将 database 的权限授予对应的帐号
+
+  参考命令:
+  ```
+  grant all privileges on `user`.* to 'user'@'%' with grant option;
+  ```
+
+
+* 授予 SUPER 权限
+  由于 部分帐号 需要创建 触发器,故,需要 SUPER 权限
+  涉及帐号有 user、user_authz、cas_server
+
+  参考命令:
+  ```
+  grant SUPER on *.* to 'user'@'%';
+  grant SUPER on *.* to 'user_authz'@'%';
+  grant SUPER on *.* to 'cas_server'@'%';
+
+  grant SUPER on *.* to 'tmp_data'@'%';
+  ```
+
+
+* 备份与还原
+
+  参考命令:
+  备份:
+  ```
+  mysqldump -u root -p cas_server > cas_server.sql
+  mysqldump -u root -p token_server > token_server.sql
+  mysqldump -u root -p user > user.sql
+  mysqldump -u root -p user_authz > user_authz.sql
+  mysqldump -u root -p agent_service > agent_service.sql
+  ```
+
+  还原:
+  ```
+  mysql -u root -p cas_server < cas_server.sql
+  mysql -u root -p token_server < token_server.sql
+  mysql -u root -p user < user.sql
+  mysql -u root -p user_authz < user_authz.sql
+  mysql -u root -p agent_service < agent_service.sql
+  ```
+
+
+### Harbor 准备及相关说明
+
+* 创建 devops 帐号
+
+  用于 rancher 部署时拉取镜像
+
+  用户管理 下 创建用户
+    如 devops
+
+
+* 镜像同步
+
+  从 https://harbor.supwisdom.com 中同步镜像
+    
+  仓库管理 下 新建目标
+  ```
+  supwisdom    https://harbor.supwisdom.com    rancher.devops / PWMgP85qiLFC
+  ```
+
+  同步管理 下 新建规则
+
+  ```
+  thirdparty-agent-service      thirdparty-agent-service/*
+
+  authx-service                 authx-service/*
+
+  user-data-service             goa/*
+  user-authorization-service    user-authorization-service/*
+  personal-security-center      personal-security-center/*
+
+  jobs-server                   jobs-server/*
+
+  cas-server                    cas-server/*
+  token-server                  token-server/*
+  ```
+
+  同步规则,创建完成后,进行镜像同步
+
+  选择某个同步规则,点击 同步,等待任务完成
+
+
+* 授予 devops 帐号 对各个项目的 访客 权限
+
+  项目 下,点击 项目名称,进入到 成员,添加用户,查找用户 devops,选择角色 访客,确定,添加即可
+
+
+### Rancher 准备及相关说明
+
+* 商店设置
+
+  进入 全局 - 集群(具体名称视项目安装而定) - 工具 - 商店设置,添加应用商店
+
+  名称:`supwisdom`
+  商店URL地址:`https://e.coding.net/supwisdom/charts/charts.git`
+  分支:`master`
+  范围:选择`cluster`
+
+
+* 创建项目
+
+  进入 全局 - 集群(具体名称视项目安装而定) - 项目/命名空间,添加项目
+
+  输入 项目名称,保存
+
+  本产品所须创建的项目名称为:`authx-platform`
+
+
+* 启动应用
+
+  进入 全局 - 集群(具体名称视项目安装而定) - 项目(某个项目)
+
+  进入 应用商店
+
+  点击 启动,在应用列表中 找到 相关应用
+
+  点击 该应用,选择模板版本(一般选择最新的版本),根据情况设置 配置选项,启动 即可
+
+  本产品所须的相关应用清单:
+  ```
+  minio               Minio文件服务
+
+  agent-service       Agent Service 代理服务
+
+  authx-service       用户授权相关服务
+
+  jobs-server         同步服务
+
+  cas-server          CAS 认证
+
+  token-server        Token 认证
+  ```
+
+* 确定命名空间
+
+  本产品安装过程中所须的命名空间如下:
+
+  ```
+  authx-minio         Minio文件服务
+
+  agent-service       Agent Service 代理服务
+
+  authx-service       用户授权相关服务
+
+  jobs-server         同步服务
+
+  cas-server          CAS 认证
+
+  token-server        Token 认证
+  ```
+
+
+### 域名准备
+
+* 确定域名
+
+  首先明确是否使用泛域名,如:`*.paas.xxx.edu.cn`,或 直接使用学校域名 `xxx.edu.cn`
+
+  本产品安装需要的域名如下:
+  ```
+  authx-minio.paas.xxx.edu.cn                 文件服务
+
+  security-center.paas.xxx.edu.cn             安全中心
+
+  cas.paas.xxx.edu.cn                         CAS 认证(视具体情况,可调整)
+  token.paas.xxx.edu.cn                       Token 认证(APP适用)
+  ```
+
+  如果使用 学校域名,则去除 .paas 即可,同时申请开通相关域名
+
+
+
+## 开始安装
+
+### 数据库安装(略)
+
+* 确定服务地址、端口
+
+  明确MySQL 数据库的 IP、端口
+
+
+### 数据库创建
+
+* 数据库帐号
+
+  以下是 各服务对应的数据库帐号
+
+  服务 | 数据库帐号
+  - | -
+  第三方代理服务 thridparty-agent-service | agent_service
+  - | -
+  用户服务 user-data-service | user
+  授权服务 user-authorization-service | user_authz
+  - | -
+  认证服务 cas-server | cas_server
+  认证服务(APP适用) token-server | token_server
+  - | -
+  v4认证迁移数据 | tmp_data
+
+  命令:
+  **请修改命令中的 `your_password` 为实际的数据库帐号的密码**
+  ```
+  create user 'agent_service'@'%' identified with mysql_native_password  by 'your_password';
+
+  create user 'user'@'%' identified with mysql_native_password  by 'your_password';
+  create user 'user_authz'@'%' identified with mysql_native_password  by 'your_password';
+  create user 'cas_server'@'%' identified with mysql_native_password  by 'your_password';
+  create user 'token_server'@'%' identified with mysql_native_password  by 'your_password';
+
+  create user 'tmp_data'@'%' identified with mysql_native_password  by 'your_password';
+  ```
+
+
+* 数据库
+
+  以下是 各服务对应的数据库
+
+  服务 | 数据库
+  - | -
+  第三方代理服务 thridparty-agent-service | agent_service
+  - | -
+  用户服务 user-data-service | user
+  授权服务 user-authorization-service | user_authz
+  - | -
+  认证服务 cas-server | cas_server
+  认证服务(APP适用) token-server | token_server
+  - | -
+  v4认证迁移数据 | tmp_data
+
+  命令:
+  ```
+  create database `agent_service` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
+
+  create database `user` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
+  create database `user_authz` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
+  create database `cas_server` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
+  create database `token_server` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
+
+  create database `tmp_data` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
+  ```
+
+
+* 数据库权限授予
+
+  将 database 的权限授予对应的帐号
+
+  命令:
+  ```
+  grant all privileges on `agent_service`.* to 'agent_service'@'%' with grant option;
+
+  grant all privileges on `user`.* to 'user'@'%' with grant option;
+  grant all privileges on `user_authz`.* to 'user_authz'@'%' with grant option;
+  grant all privileges on `cas_server`.* to 'cas_server'@'%' with grant option;
+  grant all privileges on `token_server`.* to 'token_server'@'%' with grant option;
+
+  grant all privileges on `tmp_data`.* to 'tmp_data'@'%' with grant option;
+  ```
+
+
+* SUPER 权限授予
+
+  由于 部分帐号 需要创建 触发器,故,需要 SUPER 权限
+  涉及帐号有 user、user_authz、cas_server
+
+  命令:
+  ```
+  grant SUPER on *.* to 'user'@'%';
+  grant SUPER on *.* to 'user_authz'@'%';
+  grant SUPER on *.* to 'cas_server'@'%';
+
+  grant SUPER on *.* to 'tmp_data'@'%';
+  ```
+
+
+* 用户数据的交换帐号
+
+  **待部署完成后操作**
+
+  如果,存在数据交换 须将组织机构数据、帐号数据 同步到用户服务的数据库的
+  则,需要创建一个 交换用的数据库帐号(user_trans),并为该帐号授予 表 user.TMP_ORGANIZATION_ORIGIN、user.TMP_ACCOUNT_ORIGIN 的读写操作的权限
+
+  命令:
+  ```
+  create user 'user_trans'@'%' identified with mysql_native_password  by 'your_password';
+
+  grant select on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%';
+  grant insert on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%';
+  grant update on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%';
+  grant delete on `user`.`TMP_ORGANIZATION_ORIGIN` to 'user_trans'@'%';
+
+  grant select on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%';
+  grant insert on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%';
+  grant update on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%';
+  grant delete on `user`.`TMP_ACCOUNT_ORIGIN` to 'user_trans'@'%';
+
+  grant select on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%';
+  grant insert on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%';
+  grant update on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%';
+  grant delete on `user`.`TMP_ORGANIZATION_TRANS` to 'user_trans'@'%';
+
+  grant select on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%';
+  grant insert on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%';
+  grant update on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%';
+  grant delete on `user`.`TMP_ACCOUNT_TRANS` to 'user_trans'@'%';
+  ```
+
+
+### rancher 部署(应用商店)
+
+#### minio
+
+模式: standalone
+
+Access Key: 1y8N@8R@a_2u
+Secret Key: 8pxlIe9#lN7Q
+
+域名: authx-minio.paas.xxx.edu.cn
+
+
+#### agent-service
+
+
+
+
+#### authx-service
+
+
+
+#### jobs-server
+
+
+
+#### cas-server
+
+
+
+#### token-server
+
+
+
+
+
 ### 创建授权应用
 
 ```sql
-INSERT INTO TB_SYSTEM (ID, COMPANY_ID, DELETED, ADD_ACCOUNT, ADD_TIME, 
+INSERT INTO TB_R_SYSTEM (ID, COMPANY_ID, DELETED, ADD_ACCOUNT, ADD_TIME, 
   BUSINESS_DOMAIN_ID, 
   CODE, NAME, ENABLED)
-VALUES ('20', '1', 0, 'admin', '2019-07-01 00:00:00', 
+VALUES ('10', '1', 0, 'admin', '2019-07-01 00:00:00', 
   '1', 
-  '用户授权', '20', '', 1);
+   '10', '用户授权', 1);
 
 INSERT INTO TB_APPLICATION (ID, COMPANY_ID, DELETED, ADD_ACCOUNT, ADD_TIME, 
   BUSINESS_DOMAIN_ID, SYSTEM_ID, 
   NAME, APPLICATION_ID, SYNC_URL, ENABLED)
-VALUES ('20', '1', 0, 'admin', '2019-07-01 00:00:00', 
-  '1', '20', 
-   '20', '用户授权', 1);
+VALUES ('10', '1', 0, 'admin', '2019-07-01 00:00:00', 
+  '1', '10', 
+  '用户授权', '10', '', 1);
 
 commit;
 ```
@@ -47,17 +47,17 @@ commit;
 use user_authz;
 
 INSERT INTO TB_ROLE (ID, COMPANY_ID, DELETED, ADD_ACCOUNT, ADD_TIME, APPLICATION_ID, CODE, NAME, DESCRIPTION, ENABLED, EXTERNAL_ID)
-VALUES ('20', '1', 0, 'admin', '2019-07-01 00:00:00', '20', 'cas-admin', '认证管理员', '认证管理员', 1, '20');
+VALUES ('20', '1', 0, 'admin', '2019-07-01 00:00:00', '10', 'cas-admin', '认证管理员', '认证管理员', 1, '20');
 
 INSERT INTO TB_ROLE (ID, COMPANY_ID, DELETED, ADD_ACCOUNT, ADD_TIME, APPLICATION_ID, CODE, NAME, DESCRIPTION, ENABLED, EXTERNAL_ID)
-VALUES ('30', '1', 0, 'admin', '2019-07-01 00:00:00', '20', 'user-admin', '用户管理员', '用户管理员', 1, '30');
+VALUES ('30', '1', 0, 'admin', '2019-07-01 00:00:00', '10', 'user-admin', '用户管理员', '用户管理员', 1, '30');
 
 INSERT INTO TB_ROLE (ID, COMPANY_ID, DELETED, ADD_ACCOUNT, ADD_TIME, APPLICATION_ID, CODE, NAME, DESCRIPTION, ENABLED, EXTERNAL_ID)
-VALUES ('40', '1', 0, 'admin', '2019-07-01 00:00:00', '20', 'user-authz-admin', '授权管理员', '授权管理员', 1, '40');
+VALUES ('40', '1', 0, 'admin', '2019-07-01 00:00:00', '10', 'user-authz-admin', '授权管理员', '授权管理员', 1, '40');
 INSERT INTO TB_ROLE (ID, COMPANY_ID, DELETED, ADD_ACCOUNT, ADD_TIME, APPLICATION_ID, CODE, NAME, DESCRIPTION, ENABLED, EXTERNAL_ID)
-VALUES ('41', '1', 0, 'admin', '2019-07-01 00:00:00', '20', 'user-authz-grant-admin', '用户授权管理员', '用户授权管理员', 1, '41');
+VALUES ('41', '1', 0, 'admin', '2019-07-01 00:00:00', '10', 'user-authz-grant-admin', '用户授权管理员', '用户授权管理员', 1, '41');
 INSERT INTO TB_ROLE (ID, COMPANY_ID, DELETED, ADD_ACCOUNT, ADD_TIME, APPLICATION_ID, CODE, NAME, DESCRIPTION, ENABLED, EXTERNAL_ID)
-VALUES ('42', '1', 0, 'admin', '2019-07-01 00:00:00', '20', 'user-authz-man-grant-admin', '分级授权管理员', '分级授权管理员', 1, '42');
+VALUES ('42', '1', 0, 'admin', '2019-07-01 00:00:00', '10', 'user-authz-man-grant-admin', '分级授权管理员', '分级授权管理员', 1, '42');
 
 commit;
 ```
@@ -67,8 +67,12 @@ commit;
 ```sql
 use user_authz;
 
-UPDATE TB_ROLE SET APPLICATION_ID='20' WHERE ID IN ('20', '30', '40', '41', '42');
+UPDATE TB_ROLE SET APPLICATION_ID='10' WHERE ID IN ('20', '30', '40', '41', '42');
 
 commit;
 ```
 
+
+
+
+
diff --git a/deploy-manifests/k8s-rancher/authx-platform.png b/deploy-manifests/k8s-rancher/authx-platform.png
deleted file mode 100644 (file)
index 169a3f3..0000000
Binary files a/deploy-manifests/k8s-rancher/authx-platform.png and /dev/null differ