要安装 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: 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
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: admin@yourdomain.tld
# 邮件配置 - 选择使用 SendGrid 或 SMTP
sendgrid:
enabled: false
apiKey: ""
smtp:
host: X.X.X.X
login: null
password: ""
port: 587
useSSL: false
mailFrom: noreply@yourdomain.tld
# Azure SQL 数据库配置
database:
type: sqlserver
host: X.X.X.X # Azure SQL Server 主机名
username: login
password: password
encrypt: false
# Azure 存储帐户 - 替换为您的存储帐户凭据
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 存储帐户名称,secretKey 为该存储帐户的访问密钥。您可以在 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。默认情况下,该 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 活动中训练技能,以从半结构化文档中提取数据。此参数可以设置为 true 或 false。如果该参数设置为 true,则 techcore.nn_training_workers.enabled 参数也必须设置为 true。您可以在安装 Vantage 之前或之后启用此选项,并将 techcore.nn_training_workers.gpu 和 techcore.nn_training_workers.enabled 参数设置为 true。有关更多信息,请参见设置 GPU。 |
techcore.nn_training_workers.enabled | 指定是否应部署 nn-extraction-training 和 nlp-model-train worker。这些 worker 通过 Deep Learning 活动使用 CPU 来训练技能,从半结构化文档中提取数据。此 Parameter 可以设置为 true 或 false。 |
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.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 附加组件。此参数可以设置为 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 文件的内容修改为以下格式,将其转换为 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 | 指向 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.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
对于 Virtual Machine 部署,请跳过此步骤——在第 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 技能,该技能用于从不同国家签发的身份证件中提取数据。
在安装 Vantage 时,如果在 env_specific.yml 文件中将 id_reading.enabled 参数的值设置为 true,则会同时安装 Identity Documents 附加组件。如果将 id_reading.enabled 参数的值设置为 false,则可以在安装 Vantage 之后通过运行以下命令来安装 Identity Documents 附加组件:
Virtual Machines
Azure AKS
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