跳转到主要内容

安装概述

要安装 Vantage,请按照以下步骤进行:
  1. 准备所需资源。
  2. 配置资源凭据。
  3. 执行安装脚本。

准备资源

在开始之前,请确保已满足系统要求章节中列出的所有要求。

指定资源凭据

在运行安装程序之前:
  1. 设置配置文件。
  2. 准备证书。
  3. 下载容器镜像。

配置文件设置

1. 创建安装目录: 创建一个安装目录及其子目录(sshkubessl),后续的安装操作将从该目录中执行。然后进入该安装目录。
mkdir -p /opt/vantage-install/{ssh,kube,ssl} && cd /opt/vantage-install
2. 创建 SSH 密钥文件:ssh 文件夹中创建一个名为 ansible 的文件,并将 ansible 用户的 SSH 私钥写入该文件。3. 创建 inventory 文件:在安装目录中创建一个名为 inventory 的文件。将 X.X.X.X 替换为虚拟机的 IP 地址:
[localhost]
127.0.0.1

###########################################
[kube_control_plane]
ub01master01 ansible_host=X.X.X.X

[abbyy_services]
ub01worker12-48-s01 ansible_host=X.X.X.X

[abbyy_workers]
ub01worker12-48-w01 ansible_host=X.X.X.X
ub01worker12-48-w02 ansible_host=X.X.X.X
ub01worker12-48-w03 ansible_host=X.X.X.X

###########################################
[kube_workers:children]
abbyy_services
abbyy_workers

[kube_cluster:children]
kube_control_plane
kube_workers
如果只需要 1 或 2 个 worker 节点(而不是 3 个),请删除 [abbyy_workers] 部分中多余的行。
4. 创建 env_specific.yml 文件: 在其中指定适用于您环境的参数值。
env: null
poc: true

domain: null
product_host: "{{ env }}.{{ domain }}"

logging:
  enabled: true
  elasticsearch:
    enabled: false
    host: null
    port: 9200
    username: null
    password: null
    scheme: https
  file:
    enabled: true

loadbalancer:
  external_ip: X.X.X.X

k8s:
  api:
    ip: X.X.X.X

techcore:
  use_gpu_workers: false
  use_nn_extraction_training_workers: false

platform_admin_email: admin@yourdomain.tld

source_container_registry_host: abyvtgonprm27.azurecr.io
source_container_registry_user: null      # 替换为采购过程中获取的凭据
source_container_registry_password: null  # 替换为采购过程中获取的凭据
source_container_registry_name: "{{ source_container_registry_host }}"

container_registry_host: registry.yourdomain.tld
container_registry_user: null
container_registry_password: null
container_registry_name: "{{ container_registry_host }}/vantage"

smtp:
  host: null
  login: null
  password: null
  port: 587
  useSSL: false
  secureSocketOptions: null

database:
  host: X.X.X.X
  port: 1433
  username: null
  password: null

reporting:
  enabled: false

id_reading:
  enabled: false

Parameter 配置

Parameter描述
env安装前缀,默认用作子域名。
poc不启用高可用性时设为 true,启用高可用性时设为 false
domain主域名。
product_host用于访问产品的 DNS 名称(默认值:env.domain)。
logging.enabled启用或禁用日志记录(true/false)。
logging.elasticsearch.enabled指定是否启用 Elasticsearch。此 Parameter 可设置为 truefalse注意: 仅当您已拥有 Elasticsearch 并希望将 Vantage 日志连接到其上时,才将此 Parameter 的值设置为 true。如果您没有现有的 Elasticsearch 和 Kibana 实例,可以按照 Elasticsearch 和 Kibana 中的说明在集群中部署它们。必须在安装产品之前完成此操作。
logging.elasticsearch.host服务器 IP 地址。
logging.elasticsearch.port用于连接 Elasticsearch 的端口。
logging.elasticsearch.username用于连接 Elasticsearch 的用户名。
logging.elasticsearch.password用于连接 Elasticsearch 的密码。
logging.elasticsearch.scheme用于连接 Elasticsearch 的协议方案。
logging.file.enabled指定是否将日志写入文件。此 Parameter 可设置为 truefalse
loadbalancer.external_ip负载均衡器的浮动 IP 地址。
k8s.api.ipKubernetes API 端点的 IP 地址。
securityContext.global.runAsUser指定容器进程运行时使用的用户标识符。此设置仅适用于使用外部 RWX 存储(例如 NFS)的 Pod。默认情况下,该 Parameter 的值为 65532
securityContext.global.runAsGroup指定容器进程运行时所属组的标识符。

此设置仅适用于使用外部 rwx 存储(例如 NFS)的 pod。默认情况下,此 Parameter 的值为 65532
securityContext.global.fsGroup指定将拥有挂载到该 pod 的卷的用户组标识符。此设置仅适用于使用外部 rwx 存储(例如 NFS)的 pod。默认情况下,该 Parameter 的值为 65532
techcore.nn_training_workers.gpu指定是否应部署 GPU 工作进程。GPU 工作进程用于在 Deep Learning 活动中训练技能,以从半结构化文档中提取数据。此参数可以设置为 truefalse。如果该参数设置为 true,则 techcore.nn_training_workers.enabled 参数也必须设置为 true。您可以在安装 Vantage 之前或之后启用此选项,并将 techcore.nn_training_workers.gputechcore.nn_training_workers.enabled 参数设置为 true。有关更多信息,请参见设置 GPU
techcore.nn_training_workers.enabled指定是否应部署 nn-extraction-training 和 nlp-model-train worker。这些 worker 通过 Deep Learning 活动使用 CPU 来训练技能,从半结构化文档中提取数据。此 Parameter 可以设置为 truefalse
techcore.keep_previous_version指定在更新 Vantage 时是否必须保留技术核心第 2 版。默认情况下,未指定 techcore.keep_previous_version Parameter,技术核心第 2 版会被删除。若要保留它,请将该 Parameter 的值设置为 true
platform_admin_email系统管理员的电子邮件地址。
container_registry_host容器镜像仓库的域名。
container_registry_user有权从容器镜像仓库拉取镜像的用户名。如果没有容器镜像仓库,则此 Parameter 留空。
container_registry_password用于从容器镜像仓库拉取镜像的密码/令牌。如果没有容器镜像仓库,则此 Parameter 留空。
container_registry_name托管镜像的容器镜像仓库路径。
smtp.hostSMTP 服务器的 IP 地址或主机名。
smtp.login用于连接 SMTP 服务器的用户名。
smtp.password用于连接 SMTP 服务器的密码。
smtp.portSMTP 服务器的端口。
smtp.useSSL指定是否使用加密连接。该 Parameter 可以设置为 truefalse
smtp.secureSocketOptions指定连接使用的 SSL 和/或 TLS 加密方式。
database.enabled指定是否启用数据库服务器。
database.hostSQL Server 的 IP 地址。
database.port数据库服务器的端口。
database.username用于连接数据库的用户名(该用户必须拥有创建数据库所需的权限)。
database.password用于访问数据库的密码。
reporting.enabled指定是否需要部署 Warehouse 报表服务。此 Parameter 可以设置为 truefalse
id_reading.enabled指定是否应部署 Identity Documents 附加组件。此参数可以设置为 truefalse
以下四个参数为可选项,仅在安装高可用配置并且 Vantage 安装程序需要安装 Redis 时才必需。
ParameterDescription
redis.ipsRedis 集群 IP 地址,格式如下:[‘192.168.0.1”192.168.0.2’,,‘192.168.0.3’]。如果该参数设置为 [],将部署集群内的 Redis 实例。
redis.port用于连接 Redis 集群的端口。
redis.password用于连接 Redis 的密码。
redis.ssl指定是否使用到 Redis 集群的加密连接。该参数可以设置为 truefalse
其他所有参数保持不变。

准备证书

  1. 进入 ssl 目录。将与主域名对应的通配符证书(连同中间证书)放在该目录下,并将密钥(PEM 格式)分别保存为以下文件:./ssl/cert.pem、./ssl/key.pem。你需要通过将 CRT 文件的内容修改为以下格式,将其转换为 PEM 格式:
-----BEGIN CERTIFICATE-----
[your certificate]
-----END CERTIFICATE-----
  1. 如果使用证书由内部 CA 签署的外部身份验证提供方(ADFS),请将根证书放置到 ./ssl/adfs-root.pem 中。
如果从 Vantage 访问第三方端点(自定义活动脚本或外部身份验证),该外部端点必须使用来自公共证书颁发机构的证书。

运行安装脚本

ABBYY Vantage 的安装是自动完成的。安装通过 Ansible 工具执行,该工具已安装并在用于安装的容器中完成配置。Ansible 使用各种配置方案(YAML playbook)与各台机器进行交互。 要安装 ABBYY Vantage,请按照以下步骤操作: 1. 切换到安装目录。 2. 登录安装程序分发注册表
# 将 <username> 和 <password> 替换为采购过程中获得的凭据
docker login abyvtgonprm27.azurecr.io -u <username> -p <password>
3. 如果还未运行过,请从 Docker 镜像运行安装程序:
docker run -it \
-v $PWD/kube:/home/ansible/.kube \
-v $PWD/ssh/ansible:/home/ansible/.ssh/ansible \
-v "//var/run/docker.sock:/var/run/docker.sock" \
-v $PWD/inventory:/ansible/inventories/k8s/inventory \
-v $PWD/env_specific.yml:/ansible/inventories/k8s/group_vars/all/env_specific.yml \
-v $PWD/ssl:/ansible/files/ssl:ro \
--privileged \
abyvtgonprm27.azurecr.io/vantage-installer:2.7.1
ParameterDescription
-v $PWD/kube:/home/ansible/.kube指向 Kubernetes 目录的路径,该目录中存储有 kube/config 文件。
-v $PWD/ssh/ansible:/home/ansible/.ssh/ansible指向私有 SSH 密钥的路径,该密钥用于安装和配置 Kubernetes 集群以及部分前提条件。
-v "//var/run/docker.sock:/var/run/docker.sock"同步镜像到您的容器注册表所必需。
-v $PWD/inventory:/ansible/inventories/k8s/inventory指向 inventory 文件的路径。
-v $PWD/env_specific.yml:/ansible/inventories/k8s/group_vars/all/env_specific.yml指向 env_specific.yml 文件的路径。
-v $PWD/ssl:/ansible/files/ssl:ro指向包含 SSL 证书的文件夹路径,该文件夹中应包含以下文件:cert.pemkey.pemadfsroot.pem
4. 连接到 Azure AKS 集群:
对于 Virtual Machine 部署,请跳过此步骤——在第 7 步安装 Kubernetes 时会自动配置集群凭据。
5. 下载容器镜像 迁移脚本依赖于 env_specific.yml 中的以下属性。
source_container_registry_host: sourcerepo.azurecr.io
source_container_registry_user: user
source_container_registry_password: pass
source_container_registry_name: "{{ source_container_registry_host }}/optional/subpath"

container_registry_host: destinationrepo.azurecr.io
container_registry_user: user
container_registry_password: pass
container_registry_name: "{{ container_registry_host }}/optional/subpath"
ansible-playbook -i inventories/k8s playbooks/validate-artifact-manifest.yml
ansible-playbook -i inventories/k8s playbooks/oci-migration.yml
6. 设置 SSH 密钥权限:
chmod 600 /home/ansible/.ssh/ansible
7. 安装并设置 Kubernetes 集群:
ansible-playbook -i inventories/k8s -v playbooks/4-Kubernetes-k8s.yml
8. 运行预部署检查并接受法律文件:
ansible-playbook -i inventories/k8s -v playbooks/0-PreflightCheck-k8s.yml
ansible-playbook -i inventories/k8s -v playbooks/legal.yml
该 playbook 将:
  • 对在 playbook 的 env_specific.yml 文件中指定参数的资源(例如数据库和 SMTP 连接)执行预检查。
  • 要求系统管理员接受 EULA 和 ABBYY 隐私政策的条款。
9. 安装产品:
ansible-playbook -i inventories/k8s -v playbooks/site-k8s-deploy.yml
该 playbook 将部署指标和日志收集系统,并部署 ABBYY Vantage。完成安装过程所需的时间取决于所选机器的性能。平均而言,该过程大约需要 10 分钟。您可以使用任何用于管理 Kubernetes 的工具(例如 Lens 工具)在集群中监控 pod 和作业执行情况。为此,请使用在虚拟机上安装 Kubernetes 后在 kube 文件夹中创建的 kubeconfig 文件。您还可以按照以下步骤将 Ansible 安装日志文件下载到本地计算机:
  1. 退出 Docker 容器。
  2. 运行以下命令以获取容器列表:
docker ps -a
查找包含安装程序的容器名称。
  1. 运行以下命令,将 container_name 替换为该容器的名称以获取日志:
docker cp container_name:/ansible/ansible.log ansible.log
部署完成后,您将获得以下内容:
  • 为所提供域名配置的 URL。
  • 系统管理员登录名和密码,可用于登录系统、创建租户以及处理文档。

获取安装日志

# 退出 Docker 容器,然后执行:
docker ps -a
# 找到容器名称,然后执行:
docker cp container_name:/ansible/ansible.log ansible.log

可选部署方案

部署日志系统

如果在安装 Vantage 时未启用日志系统(env_specific.yml 文件中 logging.enabled 参数的值为 false),则可以在安装完成后启用它。为此,将 env_specific.yml 文件中 logging.enabled 参数的值设置为 true,然后运行以下命令:
ansible-playbook -i inventories/k8s playbooks/6-DeployMonitoring-k8s.yml

部署 Business Processing Reporting Warehouse

Business Processing Reporting Warehouse 用于分析业务流程并跟踪特定时间段内的数据。在安装 Vantage 时,如果在 env_specific.yml 文件中将 reporting.enabled 参数的值设置为 true,则会同时安装 Business Processing Reporting Warehouse。若将 reporting.enabled 参数的值设置为 false,则可以在安装 Vantage 之后通过运行以下命令来安装 Business Processing Reporting Warehouse:
ansible-playbook -i inventories/k8s -v playbooks/deploy-reporting.yml

部署 Identity Documents 附加组件

Identity Documents 附加组件要求 Vantage 能通过互联网访问 https://lic.regulaforensics.comhttps://lic2.regulaforensics.com
Identity Documents 附加组件服务支持运行 Identity Documents 技能,该技能用于从不同国家签发的身份证件中提取数据。 在安装 Vantage 时,如果在 env_specific.yml 文件中将 id_reading.enabled 参数的值设置为 true,则会同时安装 Identity Documents 附加组件。如果将 id_reading.enabled 参数的值设置为 false,则可以在安装 Vantage 之后通过运行以下命令来安装 Identity Documents 附加组件:
ansible-playbook -i inventories/k8s -v playbooks/12-DeployDocumentReader.yml
必须确保包含 Vantage 安装的集群可以访问以下地址: https://lic.regulaforensics.com https://lic2.regulaforensics.com