# 文档中台
# Docker部署操作手册
# 1. 部署说明
# 1.1 部署方式
通过执行命令方式进行文档中台服务部署;
# 1.2 环境要求
# 1.3 特别说明
1、Weboffice中台不支持在IPV6网络使用。
2、Weboffice中台和OA需在使用https和http保持一致,换言之,OA使用https则weboffice中台也需配置成https,若OA使用http访问方式,则weboffice也配置成http。
3、要使用Weboffice中台服务,必须确保客户端(即用户登录OA的电脑端)能访问到中台,M3手机端、微协同也一样,参考第6节关于weboffice外网访问的方案。
4、务必保证中台服务器时间同OA服务器一致。
# 2. 部署准备
# 2.1 下载部署包
下载地址:
Docker部署(x86版本):
# 5.1.7版本:
下载链接:https://pan.seeyon.com/s/omoN2eKzbNL 密码:005964
docker部署包:
release_kubewps_x64_v5.1.701.301_20220125.tar.gz
md5:d7479cede16d4cd2505febba0cec4c8c
文档中台部署包:
release_opendoc_x64_v5.1.701.35_20220125.tar.gz
md5:18d16259553ca08c5b3f3410a8824e9b
# 2.2 上传部署包
为避免权限类问题,建议使用root用户操作!!!
非root用户部署:
部署包kubewps的属主需要跟当前操作的用户保持一致,即用哪个用户做的上传,就用哪个用户进行部署操作,chown -R
将本地的部署包通过xshell中自带的xftp,上传至服务器。
- 进行md5校验 release_kubewps_x64_v5.1.701.301_20220125.tar.gz包 MD5值:d7479cede16d4cd2505febba0cec4c8c release_opendoc_x64_v5.1.701.35_20220125.tar.gz包 MD5值:18d16259553ca08c5b3f3410a8824e9b
MD5码的值一样,才能进行部署操作。
- 解压文件,放入对应目录。
默认数据盘为data目录,需将文件解压至data目录
tar –zxf release_kubewps_x64_v5.1.701.301_20220125.tar.gz –C /data/
tar release_opendoc_x64_v5.1.701.35_20220125.tar.gz –C /data/kubewps/apps/
# 2.3 部署前环境检查
此检查为部署前环境准备阶段的基础检查,目的是快速判断同种类型服务器基础环境是否满足部署要求,完成该阶段检查后,满足条件则可以进行部署操作。 境检查工具下载地址: 参考中台知识库:https://p.wpseco.cn/wiki/doc/63461bf2d7c60f8bf1fd8c30
****注意:首次部署检查应为全部通过。
# 2.4 安装部署平台
安装容器化部署:
在/data/kubewps目录下执行 bash install.sh DIR ( DIR 是指配置的数据目录,默认为/data),并按要求输入yes/no。Yes为继续安装,如果数据目录不符合要求请输入no取消安装。如下图:
安装完容器化部署后,在服务端执行docker ps 查看目前运行的容器实例,必须有kubewps和kubewps_mysql容器。正确状态如下;
卸载容器化平台: 若要执行卸载,请确定应用中间件是未安装或已卸载状态。 在/data/kubewps目录下执行 bash uninstall.sh DIR ( DIR 是指配置的数据目录,默认为/data),完成卸载操作。
# 3. 命令部署
# 3.1 环境基础中间件部署
# 3.1.1 基础服务配置文件
部署包/data/kubewps/conf/template/中提前准备部署模板文件
选择对应集群节点数据的模版文件覆盖conf/kubewps.conf。 以集群3个节点为例:
\cp /data/kubewps/conf/template/kubewps.3.conf /data/kubewps/conf/kubewps.conf
拷贝完后,修改kubewps.conf文件。只需要填写其中的 host部署主机连接信息。如3台集群配置得到kubewps.conf见下配置:
# 3.1.2 查看命令帮助
进入kubewps
3.1.3 开始安装中间件
- 添加主机和选择部署产品类型
# 进入部署容器
kubewps
# 执行命令添加主机
kubewps> wpscli host add
- wpscli用户名密码:wpsadmin/Wps@123456(此为默认密码)
注意:首次安装会提示修改密码,后面所有操作以修改的密码为准。
- 产品类型选择:2
# 2.环境检查
所有检查项的状态都必须显示通过,否则禁止执行后续步骤;
kubewps> wpscli env check
# 3.安装/卸载中间件
安装:kubewps> wpscli midware install all
卸载:kubewps> wpscli midware remove all
# 4. 添加存储(部分信创版本已无需手动执行安装)
kubewps> wpscli storage add
# 3.2 weboffice应用安装
注:安装应用前请提前规划好网络,注意1.3的特别说明事项,是否需要将weboffice中台服务外网可访问,若需要参照第6节外网访问方案来配置app.conf,因为安装中台应用后更改app.conf配置,需重新安装生效。
1、修改/data/kubewps/apps/ wpsyun.5.1.7.14/app.conf文件(必须做对应调整)
一般来说只需调整,company_name、opendoc和domains,若使用了Nginx代理则必须配置proxy_server为代理后的地址(具体Nginx配置见3.3说明),其余可默认。
特别说明:company_name的值与许可码授权相关,请申请许可码时注意保持一致。
配置说明:readme.app.conf
无nginx代理,参考配置:
<说明>:domain直接填写IP和域名,端口号不改就是默认80; 图中配置为主机ip和域名同时生效(即外部可分别使用ip和域名访问中台),如果使用了Nginx做代理,必须app.conf里指定代理地址,若安装后修改了app.conf的配置则需要卸载应用,重新安装应用生效。
3、安装/卸载weboffice应用
安装:wpscli app install wpsyun 5.1.7.14
卸载:wpscli app remove wpsyun 5.1.7.14
安装完成后, 执行对照下图,如果状态显示正常,表示服务安装完成:
wpscli app show
4、使用中台自带demo验证
应用安装完成后,确定中台的demo是否可以正常预览/编辑。浏览器打开http(s)😕/ip:port/docs-demo/web,依次上传文件、创建应用、生成预览/编辑地址、浏览器否可以打开。
上传文件:
创建应用:
获取Token需要等几分钟,才能获取成功 复制按钮后的链接地址,在浏览器中输入地址,预览/编辑打开成功。
# 3.3 关于使用Nginx代理访问(单机非必要)
若使用Nginx做文档中台前置网关,做https证书卸载: a.基础环境说明 i.A代理服务器地址:https://webofficetest.seeyon.com ii.B中台服务入口地址:http:// 10.3.4.85 iii.期望达到的目的是访问A时代理到B,A到B做SSL证书卸载;
b.nginx代理服务器需要做的配置:
c.中台服务配置,/data/kubewps/apps/wpsyun.5.17.14/app.conf文件:
# 3.4 配置weboffice开发者接口
weboffice的上传下载功能,需要配置当前目录信息。
(1)连上中台服务器
kubewps容器中执行
####获取默认信息备份,ip是中台的ip,端口2379
5.1.6版本需要先执行:
export ETCDCTL_API=3 (5.1.7无需执行)
etcdctl --endpoints=10.3.4.86:2379 get /config/developer
(2)增加etcd.sh配置文件
然后,将获取到的信息拷贝出来,新增一个配置文件etcd.sh《etcd.sh》,把内容放到里面如下
#!/bin/bash
etcdurl=http://10.3.4.86 //改成客户环境的IP
etcdport=2379
etcdprefix="/"
export ETCDCTL_API=3
etcdctl --endpoints=$etcdurl:$etcdport put ${etcdprefix}config/developer '
//改成客户环境的配置
[[KeyConfig]]
AccessKey = "APP_form_test_0pmw29x"
SecretKey = "hztnsuTLj6Yy5PtA9Wer+VlGQ0tvRaxOko2bIHu1hiE="
[[KeyConfig]]
AccessKey = "AK20211108KSJUCZ"
SecretKey = "yLAYKYI9DV9MiWIOUkfhrW/EnPQnNsTF8XJfd7nWExSQtDfa1DxzR1U/MadfZKUd5wkIyQ6jfSPFowy0"
EncryptedSecretKey = "yLAYKYI9DV9MiWIOUkfhrW/EnPQnNsTF8XJfd7nWExSQtDfa1DxzR1U/MadfZKUd5wkIyQ6jfSPFowy0"
新增的配置
[[KeyConfig]]
AccessKey = "ak1yUaJ49WYQ9hy2f0A"
SecretKey = "sk1yUaJ49WYQ9hy2f0A"
'
如图所示:
需要注意修改etcdurl=中台的访问ip,原有拷贝的配置要保留。
切记:更新前一定将文档中台原此配置项的内容保留**!**
切记:更新前一定将文档中台原此配置项的内容保留**!**
切记:更新前一定将文档中台原此配置项的内容保留**!**
自己定义的AccessKey和SecretKey,建议是至少是长度大于20的大小写字母和数字的混合字符串。
(3)运行脚本
文件保存后,修改文件权限:
chmod -R 777 etcd.sh
然后在kubewps容器执行该脚本后,查看是否生效,生效后则配置成功。步骤如图:
(4)配置OA协同
或者直接修改配置文件plugin.properties
# 3.5 服务到期提醒配置
在webOffice到期前7、3天和当天发送提醒给系统管理员。提醒方式:OA系统消息和短信提醒。 协同8.1sp1及之后版本新增服务到期提醒配置,通过超级管理员账号wpsadmin登录WPS开放平台(ip/open)后,直接在新浏览器窗口访问「文档中台部署地址+/open/api/docs_mid_third/app/info」获取应用管理的app_id和app_key。,如下:
然后在OA协同新增配置: 配置文件为…/base/conf/plugin.properties weboffice.provider.appId = AK20210729****** weboffice.provider.appKey = 363a0916935eb7c6952****** 可视化配置位置:
# 4. 申请许可证
许可证是对应合同签约包含的套餐及权益信息,许可证文件不可手动修改,仅能通过系统申请。许可证构建服务仅限指定人员操作,获取许可证文件后,可以导入部署服务器中执行后即可生效。详细操作如下:
- 获取企业唯一码:
执行命令:sudo cat /sys/devices/virtual/dmi/id/product_uuid
机器码获取工具分别在每台机器获取,以分号拼接作为企业唯一码;
- 申请许可码:许可码是找金山申请,填写相关信息由金山审核后发送到邮箱;
许可码申请地址:https://f.wps.cn/w/X0W0Qv8a/
- 导入许可证:
直接访问app.conf配置中的域名或ip:
http或https://{IP或域名}/open,使用wpsadmin/Wps@123456(若修改密码使用修改密码)登录,通过可视化界面完成应用的授权、创建、管理、开发对接。
进入开放平台,更新授权,将证书可视化导入。
# 5. 申请appId和appKey
注意:关于appid和appkey的申请分为金山公网开放平台和weboffice内网平台,前者不需要部署weboffice中台服务(即与本次部署无关,只做简单说明),后者需要先部署weboffice中台服务。
# 5.1 金山公网开放平台申请(私有化部署忽略)
登录金山开放平台https://open.wps.cn/developer-info/online-edit-service,点击管理中心申请。
金山通过认证后,如下图:
本地环境使用公网:
weboffice.enable=true
weboffice.networkType=PUB
weboffice.url=https://wwo.wps.cn/office
weboffice.appId=9f422bb26b604f90531e0028471f8a23
weboffice.appKey=xxxx
weboffice.callBackUrl=http://xxxx/seeyon/webOffice
# 5.2 本地环境部署中台申请
访问文档中台可视化服务,http://{domain}/open,https://{domain}/open 使用wpsadmin/Wps@123456(若修改密码使用修改密码)完成登录,通过可视化界面点击管理中心申请。
提交申请后,访问管理后台http://{domain}/openplatform,https://{domain}/openplatform 使用账号wpsadmin/Wps@123456登录,可对在可视化平台创建应用的能力申请进行审核。
点击查看并审批,通过审批。
然后访问管理后台http://{domain}/open,https://{domain}/open 同样使用账号wpsadmin/Wps@123456登录,点击管理中心,添加应用,点击提交。
添加完应用,点击查看可以看到appid和appkey。
添加ip白名单和跨域白名单,将OA的访问ip或域名填写到对应位置。建议将OA和金山的访问ip和域名都加上。
注意:若有微协同、致信也需要将域名地址添加。
如下图所示:
查看权限申请页面,查是否为全部已获取。
若没有显示全部已获取,需访问管理后台:http://{domain}/openplatform,https://{domain}/openplatform
点击应用列表--选择相应app名称--查看--授权信息--恢复授权。
点击编辑回调,填写回调域名为:OA访问地址(OA为集群请填写负载均衡地址)/ webOffice 如:http://10.3.4.85:8080/seeyon/webOffice
其他项按默认,无需更改,点击保存。
同样点击预览回调,填写回调域名为:OA地址(OA为集群请填写负载均衡地址)/ webOffice/previewCallBack
如:http://10.3.4.85:8080/seeyon/webOffice/previewCallBack
其他项按默认,无需更改,点击保存。
格式回调无需配置。
5.3 OA配置中台相关地址
应用申请完成,并且跨域白名单设置完成后,oa就可以使用这个appId了。可以直接修改配置文件运行或者seeyonconfig来可视化配置。
# 在线预览
在线预览:配置文件为…/base/conf/systemCtp.properties。
officeTrans.type=wps
officeTrans.wps.appId=AK20210611GISDDJ (金山应用APPID,根据实际情况修改)
officeTrans.wps.appKey=0b22738e5c07fd2e2d1b829c12e536e7 (金山应用APPKEY,根据实际情况修改)
officeTrans.wps.openServiceUrl=https://kdocs.seeyoncloud.com/open (金山预览服务地址,注意以地址open结尾,根据实际情况修改)
officeTrans.wps.callBackUrl=http://10.6.3.63(OA为集群请填写负载均衡地址)/seeyon/webOffice/previewCallBack
可视化配置位置:
在线编辑:配置文件为…/base/conf下的plugin.properties。
# 在线编辑
weboffice.enable=true
weboffice.networkType=PRI
weboffice.url=https://kdocs.seeyoncloud.com/open (金山预览服务地址,注意以地址open结尾,根据实际情况修改)
weboffice.appId=AK20210611GISDDJ (金山应用APPID,根据实际情况修改)
weboffice.appKey=0b22738e5c07fd2e2d1b829c12e536e7 (金山应用APPKEY,根据实际情况修改)
weboffice.callBackUrl=http://10.6.3.63(OA为集群请填写负载均衡地址)/seeyon/webOffice
可视化配置位置:
配置完成重启OA后,访问OA进行测试:
# 6. 关于weboffice外网访问的方案
需求:一般使用M3移动办公和微协同在进行外网访问时,需要使用到weboffice中台服务,但中台部署在内网。
要实现上面的需求,有两种解决方案:
- 直接将weboffice服务映射到外网,直接通过外网域名访问,但注意需在app.conf里配置上域名。
2.使用Nginx代理服务器,隐藏weboffice中台真实服务器,将外网域名绑定到Nginx服务器。需要注意在app.conf配置文件里填写proxy_server,因此中台服务不支持多个Nginx代理,仅能被一个Nginx代理关于Nginx代理配置见3.3节说明。
2.1具体配置策略详见该文档
# 7. 中台的Loading文案自定义
如何修改如下图文档中台的加载页loading?
操作方法:
1.查询ETCD容器
docker ps|grep etcd
2.进入ETCD容器,查看ETCDCTL工具(工具在/app目录下)
docker exec -it <容器ID> sh
3.设置ETCD环境变量(必需,不设置无法获取相关配置)
export ETCDCTL API=3
#IP为服务器实际地址
export ETCDCTL_ENDPOINTS=HTTP://172.16.16.3:2379
4.获取[/config/jsconfig]配置
#
./etcdctl get /config/jsconfig
截图为GET参数效果,供参考。
- loading页文字参数配置(重点)
将4获取的json拷贝到Notepad++,请不要使用记事本操作。
在末尾添加如下段落:
"loadingPage": {
"subtitle": "加载中",
"showAutoLogo": true,
"isAutoSize": true
}
6.PUT "loadingPage"参数
#
./etcdctl put /config/jsconfig '{
json数据
} ##注意这里有个单引号,结尾处也要加单引号
效果如下:
拷贝到命令行执行:
- 查询[/config/jsconfig]配置是否生效
./etcdctl get /config/jsconfig
- [编辑或预览]测试验证
# 8. 部署常见问题
# 问题一 、环境检查不通过
检查不通过的请参照《操作系统环境修复FAQ》进行修复: https://kdocs.cn/l/cfVHFxZiVAgi[金山文档] Centos 操作系统环境修复 FAQ.pdf
# 问题二、添加host主机时,提示需要输入密码
# 原因1:
客户服务器配置了禁止使用密钥免密登录 解决方法:编辑SSH服务配置
vim /etc/ssh/sshd_config
重启SSH服务:service sshd restart
# 原因2:
客户服务器免密ssh用户家目录权限错误 解决方法:sudo chown -R wps:wps /home/wps
# 原因3:
添加host主机正常,但是env check环境检查时报错:
可通过查看系统日志:
系统日志报错 userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth] 这是因为 OpenSSH 7.x 以上默认关闭了 ssh-dss 了,可通过 ssh -V 查看版本。
解决方法:vim /etc/ssh/ssh_config 找到 # Host * 把注释去掉,然后下面添加一句: PubkeyAcceptedKeyTypes=+ssh-dss 修改并保 即可。
# 问题三、外网访问金山地址,返回:result" :"Empty x_origin","msg" :"not find x_origin
原因分析:外网的IP/域名未配置到app.conf 解决方法:修改app.conf,添加域名/外网IP的配置,参考配置如下:
# 问题四、外网访问预览编辑报错
# 现象一:
文件转换失败,原因:配置错误
问题排查: 1、检查金山后台配置得预览/编辑回调地址是否正确
2、检查OA系配置中台相关地址是否正确,参考5.3章节检查。
3、检查配置的OA地址和金山地址协议(http/https)是否一致。
# 现象二:
F12打开浏览器,控制台Console大量报错:WebSocket相关报错 问题排查: 1、检查防火墙是否对WebSocket有限制 2、检查nginx配置:是否配置以下内容:
# 问题五、OA预览编辑报错:csrf error
# 现象1:
原因:未配置跨域白名单 解决方法:检查跨域白名单是否配置:将OA地址加入白名单
# 现象2:
原因:OA的回调地址配置错误 解决方法:检查金山后台配置页面应用的回调地址是否正确
# 问题六、附件无预览按钮
原因: 1、OA加密狗无officetrans插件 2、系统后台未开启Office转换 解决方法:重新申请加密狗。
# 问题七、字体导入接口访问报错
原因:encs-wpsplus-admin容器可能异常。 解决方法:重启容器 docker restart encs-wpsplus-admin 若访问出现权限不足无法访问,请清理浏览器缓存。