要安装 Vantage,请按照以下步骤操作:
- 准备所需资源。
- 配置资源凭据。
- 运行安装脚本。
在开始之前,请确保已满足系统要求部分中列出的所有要求。 请先完成 Azure 基础架构创建!在继续之前,必须先创建部署所需的全部 Azure 资源(AKS 集群、存储帐户、SQL 数据库)。请先完成 Azure 基础架构创建指南。对于符合 FIPS 的政府部署,请参阅 FIPS 合规性。
在运行安装程序之前:
- 设置配置文件。
- 准备证书。
- 下载容器镜像。
1. 创建安装目录:
创建一个安装目录及其子目录(ssh、kube、ssl),安装将从此目录执行。然后切换到该安装目录。
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] 部分删除多余的行。
对于 Azure AKS 部署,无需执行步骤 2 和 3。请继续执行步骤 4。
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: [email protected]
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
env: vantage
poc: false # 对于“无高可用性”配置,将其设置为 true
domain: yourdomain.tld
product_host: "vantage.{{ domain }}"
loadbalancer:
external_ip: X.X.X.X # Azure 公网 IP 地址
container_registry_host: "registry.yourdomain.tld"
container_registry_user: "service"
container_registry_password: "password"
container_registry_name: "{{ container_registry_host }}/vantage"
techcore:
use_gpu_workers: false
use_nn_extraction_training_workers: false
logging:
enabled: true
elasticsearch:
enabled: false
host: null
port: 9200
username: null
password: null
scheme: https
ilm:
create: false
file:
enabled: true
platform_admin_email: [email protected]
# 电子邮件配置 - 使用 SendGrid 或 SMTP 二选一
sendgrid:
enabled: false
apiKey: ""
smtp:
host: X.X.X.X
login: null
password: ""
port: 587
useSSL: false
mailFrom: [email protected]
# Azure SQL Database 配置
database:
type: sqlserver
host: X.X.X.X # Azure SQL Server 主机名
username: login
password: password
encrypt: false
# Azure Storage Accounts - 替换为你的存储账户凭据
s3storage:
skills:
accessKey: skills_storage_account_name
secretKey: skills_storage_account_key
processing:
accessKey: processing_storage_account_name
secretKey: processing_storage_account_key
temporary:
accessKey: temporary_storage_account_name
secretKey: temporary_storage_account_key
sharedfolder:
accessKey: sharedfolder_storage_account_name
secretKey: sharedfolder_storage_account_key
resourcegroup: your_resource_group
archive:
accessKey: archive_storage_account_name
secretKey: archive_storage_account_key
# Redis 集群配置(仅在高可用模式下必需)
# 对于“无高可用性”配置,请保留为空数组
redis:
ips: ['172.16.10.101', '172.16.10.102', '172.16.10.103', '172.16.10.104', '172.16.10.105', '172.16.10.106']
port: 6379
password: redispassword
ssl: false
reporting:
enabled: false
id_reading:
enabled: false
k8s_fips_enabled: false
对于 s3storage 部分,accessKey 是 Azure Storage Account 名称,secretKey 是 Storage Account 访问密钥。你可以在 Azure 门户中或使用 Azure CLI 获取这些信息。
| Parameter | 说明 |
|---|
env | 安装前缀,默认作为子域名使用。 |
poc | true 表示不启用高可用部署,false 表示启用高可用部署。 |
domain | 主域名。 |
product_host | 用于访问产品的 DNS 名称(默认:env.domain)。 |
logging.enabled | 启用或禁用日志记录(true/false)。 |
logging.elasticsearch.enabled | 指定是否启用 Elasticsearch。此 Parameter 可设置为 true 或 false。**注意:**仅当您已经有 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 可以设置为 true 或 false。 |
loadbalancer.external_ip | 负载均衡器的浮动 IP 地址。 |
k8s.api.ip | Kubernetes API 端点的 IP 地址。 |
securityContext.global.runAsUser | 指定容器进程运行所用用户的标识符。此设置仅适用于使用外部 rwx 存储(例如 NFS)的 Pod。默认情况下,该参数的值为 65532。 |
securityContext.global.runAsGroup | 指定容器进程运行时所属组的标识符。
此设置仅适用于使用外部 rwx 存储(例如 NFS)的 Pod。默认情况下,此 Parameter 设置为 65532。 |
securityContext.global.fsGroup | 指定将拥有挂载到该 pod 的存储卷的用户组标识符。此设置仅适用于使用外部 rwx 存储(例如 NFS)的 pod。默认情况下,该参数的值为 65532。 |
techcore.nn_training_workers.gpu | 指定是否应部署 GPU worker。GPU worker 用于在 Deep Learning 活动中训练 Skill,以从半结构化文档中提取数据。此 Parameter 可以设置为 true 或 false。如果该 Parameter 设置为 true,则 techcore.nn_training_workers.enabled Parameter 也必须设置为 true。您可以在安装 Vantage 之前或之后启用此选项,并将 techcore.nn_training_workers.gpu 和 techcore.nn_training_workers.enabled 这两个 Parameter 设置为 true。有关更多信息,请参阅设置 GPU。 |
techcore.nn_training_workers.enabled | 指定是否应部署 nn-extraction-training 和 nlp-model-train workers。这些 workers 在 Deep Learning 活动中用于基于 CPU 训练 Skill,以从半结构化文档中提取数据。此 Parameter 可设置为 true 或 false。 |
techcore.keep_previous_version | 指定在更新 Vantage 时是否必须保留 technology core 的第 2 版。默认情况下,未指定 techcore.keep_previous_version Parameter 时,会删除 technology core 的第 2 版。若要保留该版本,请将此 Parameter 的值设置为 true。 |
platform_admin_email | 系统管理员的邮箱地址。 |
container_registry_host | 容器镜像仓库的域名。 |
container_registry_user | 拥有从容器注册表下载镜像权限的用户名。如果没有容器注册表,则此 Parameter 保持为空。 |
container_registry_password | 用于从容器镜像仓库下载镜像的密码或令牌。如果没有容器镜像仓库,请将此 Parameter 留空。 |
container_registry_name | 用于托管镜像的容器镜像仓库目录。 |
smtp.host | SMTP 服务器的 IP 地址或主机名。 |
smtp.login | 用于连接 SMTP 服务器的用户名。 |
smtp.password | 用于连接 SMTP 服务器的密码。 |
smtp.port | SMTP 服务器端口。 |
smtp.useSSL | 指定是否使用加密连接。此 Parameter 可以设置为 true 或 false。 |
smtp.secureSocketOptions | 指定连接应使用的 SSL 和/或 TLS 加密选项。 |
database.enabled | 指定是否启用数据库服务器。 |
database.host | SQL Server 的 IP 地址。 |
database.port | 数据库服务器端口号。 |
database.username | 用于连接数据库的用户名(该用户必须具有创建数据库所需的权限)。 |
database.password | 用于连接数据库的密码。 |
reporting.enabled | 指定是否部署 Warehouse 报表服务。该 Parameter 可以设置为 true 或 false。 |
id_reading.enabled | 指定是否部署 Identity Documents 插件。该 Parameter 可以设置为 true 或 false。 |
以下四个参数是可选的,仅在安装高可用配置且需要由 Vantage 安装程序安装 Redis 时才需要。
| Parameter | Description |
|---|
redis.ips | Redis 集群 IP 地址,格式如下:[‘192.168.0.1”192.168.0.2’,,‘192.168.0.3’]。如果该参数设置为 [],则会在集群内部署 Redis 实例。 |
| redis.port | 用于连接 Redis 集群的端口。 |
redis.password | 用于连接 Redis 的密码。 |
redis.ssl | 指定是否使用到 Redis 集群的加密连接。此参数可以设置为 true 或 false。 |
所有其他参数保持不变。
- 进入 ssl 目录。将与主域名对应的通配符证书(连同中间证书)放在该目录下,并将密钥(PEM 格式)分别保存到以下文件中:./ssl/cert.pem 和 ./ssl/key.pem。你需要通过将 CRT 文件的内容修改为以下格式,将 CRT 文件转换为 PEM 格式:
-----BEGIN CERTIFICATE-----
[your certificate]
-----END CERTIFICATE-----
- 如果使用带有内部 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 镜像运行安装程序:
Virtual Machines
Azure AKS
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
| Parameter | Description |
|---|
-v $PWD/kube:/home/ansible/.kube | 存放 kube/config 文件的 Kubernetes 目录路径。 |
-v $PWD/ssh/ansible:/home/ansible/.ssh/ansible | 安装和配置 Kubernetes 集群及部分先决条件所需的私有 SSH 密钥路径。 |
-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.pem、key.pem、adfsroot.pem。 |
docker run -it \
-v $PWD/env_specific.yml:/ansible/inventories/azure/group_vars/all/env_specific.yml \
-v $PWD/ssl:/ansible/files/ssl:ro \
abyvtgonprm27.azurecr.io/vantage-installer:2.7.1
| Parameter | Description |
|---|
-v $PWD/env_specific.yml:/ansible/inventories/azure/group_vars/all/env_specific.yml | env_specific.yml 文件的路径。 |
-v $PWD/ssl:/ansible/files/ssl:ro | 包含 SSL 证书的文件夹路径,该文件夹中应包含以下文件:cert.pem、key.pem、adfsroot.pem。 |
4. 连接到 Azure AKS 集群:
Virtual Machines
Azure AKS
虚拟机部署可跳过此步骤——在第 7 步安装 Kubernetes 期间会自动配置集群凭据。
Docker 容器启动后,先在 Azure 中完成身份验证,然后连接到你的 AKS 集群:# 登录 Azure
az login
# 设置订阅(替换为你的订阅 ID)
az account set --subscription <subscription_id>
# 获取 AKS 集群凭据(替换为你的资源组和集群名称)
az aks get-credentials --resource-group <resource_group_name> --name <cluster_name>
# 验证集群连通性
kubectl cluster-info
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
ansible-playbook -i inventories/azure playbooks/validate-artifact-manifest.yml
ansible-playbook -i inventories/azure 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
对于 Azure AKS 部署,无需执行步骤 6 和 7——Kubernetes 集群已通过 Azure 基础架构创建指南预先创建。请继续执行步骤 8。
8. 运行预部署检查并接受法律文件:
ansible-playbook -i inventories/k8s -v playbooks/0-PreflightCheck-k8s.yml
ansible-playbook -i inventories/k8s -v playbooks/legal.yml
ansible-playbook -i inventories/azure playbooks/0-PreflightCheck-azure.yml
ansible-playbook -i inventories/azure playbooks/legal.yml
该 playbook 将:
- 对在 playbook 的
env_specific.yml 文件中指定参数的资源执行预检查(例如数据库和 SMTP 连接)。
- 要求系统管理员接受 EULA 条款和 ABBYY 隐私政策。
9. 安装产品:
ansible-playbook -i inventories/k8s -v playbooks/site-k8s-deploy.yml
ansible-playbook -i inventories/azure playbooks/site-azure-deploy.yml
该 playbook 将部署指标和日志收集系统,并部署 ABBYY Vantage。完成安装所需的时间取决于所选机器的性能。平均而言,该过程大约需要 10 分钟。您可以使用任何用于操作 Kubernetes 的工具(例如 Lens 工具)在集群中监控 Pod 和作业的执行情况。为此,请使用在虚拟机上安装 Kubernetes 后于 kube 文件夹中创建的 kubeconfig 文件。您还可以按照以下步骤将 Ansible 安装日志文件下载到本地计算机:
- 退出 Docker 容器。
- 运行以下命令以获取容器列表:
查找包含安装程序的容器名称。
- 运行以下命令,将 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
ansible-playbook -i inventories/azure playbooks/6-DeployMonitoring-azure.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
ansible-playbook -i inventories/azure -v playbooks/deploy-reporting.yml
部署 Identity Documents 附加组件
使用 Identity Documents 附加组件时,Vantage 必须能够通过互联网访问 https://lic.regulaforensics.com 和 https://lic2.regulaforensics.com。
Identity Documents 附加组件服务用于运行 Identity Documents Skill,可从不同国家签发的身份证件中提取数据。
在安装 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
ansible-playbook -i inventories/azure -v playbooks/12-DeployDocumentReader.yml
必须确保部署 Vantage 的集群能够访问以下地址:
https://lic.regulaforensics.com
https://lic2.regulaforensics.com