若要安裝 Vantage,請依照下列步驟操作:
- 準備資源。
- 指定資源認證資訊。
- 執行安裝指令碼。
Virtual Machines
Azure AKS
在開始之前,請先確認已滿足系統需求一節中列出的所有需求。 請先完成 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 替換為您的 VM 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 設定
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。此參數可以設定為 true 或 false。**注意:**只有在您已經擁有 Elasticsearch 並希望將 Vantage 的日誌連線到該系統時,才將此參數值設定為 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 活動中訓練 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 worker。這些 worker 使用 CPU 搭配 Deep Learning 活動來訓練 skills,以從半結構化文件中擷取資料。此 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。 |
The following four Parameter 為選用項目,只有在安裝高可用性組態且 Vantage 安裝程式需要安裝 Redis 時才必須設定。
| Parameter | Description |
|---|
redis.ips | Redis 叢集的 IP 位址,使用下列格式:[‘192.168.0.1”192.168.0.2’,,‘192.168.0.3’]。如果將此 Parameter 設定為 [],則會部署叢集內部的 Redis 執行個體。 |
| redis.port | 用來連線至 Redis 叢集的連接埠。 |
redis.password | 用來連線至 Redis 的密碼。 |
redis.ssl | 指定是否要使用與 Redis 叢集之間的加密連線。此 Parameter 可設定為 true 或 false。 |
所有其他 Parameter 保持不變。
- 前往 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 playbooks)與機器互動。
若要安裝 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
| 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 叢集:
對於虛擬機器部署,請略過此步驟——在步驟 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 Infrastructure Creation 指南完成佈建。請繼續進行步驟 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 Parameter 值為 false),則可以在安裝 Vantage 之後啟用它。為此,請將 env_specific.yml 檔案中 logging.enabled Parameter 的值設定為 true,然後執行以下命令:
Virtual Machines
Azure AKS
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