Vantage를 설치하려면 다음 단계를 따르십시오.
- 리소스를 준비합니다.
- 리소스에 대한 자격 증명을 설정합니다.
- 설치 스크립트를 실행합니다.
Virtual Machines
Azure AKS
설치 프로그램을 실행하기 전에 다음 작업을 수행하십시오.
- 구성 파일을 설정합니다.
- 인증서를 준비합니다.
- 컨테이너 이미지를 다운로드합니다.
1. 설치 디렉터리 생성:
설치를 수행할 설치 디렉터리와 그 하위 디렉터리(ssh, kube, ssl)를 생성합니다. 그런 다음 설치 디렉터리로 이동합니다.
mkdir -p /opt/vantage-install/{ssh,kube,ssl} && cd /opt/vantage-install
Virtual Machines
Azure AKS
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
워커용 머신이 3대가 아니라 1대 또는 2대만 필요하다면, [abbyy_workers] 섹션에서 불필요한 줄을 삭제하십시오.
단계 2와 3은 Azure AKS 배포에서는 필요하지 않습니다. 4단계로 진행하십시오.
4. env_specific.yml 파일 생성:
사용자 환경에 맞는 값을 지정하십시오.
Virtual Machines
Azure AKS
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 # 고가용성 미구성(Without high availability configuration)인 경우 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 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 클러스터 구성(고가용성 구성에만 필요)
# 고가용성 미구성(Without high availability configuration)인 경우 빈 배열로 둡니다.
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)를 사용하는 포드에만 적용됩니다. 기본적으로 이 Parameter는 65532로 설정됩니다. |
securityContext.global.runAsGroup | 컨테이너 프로세스가 실행될 그룹의 식별자를 지정합니다.
이 설정은 외부 RWX 스토리지(예: NFS)를 사용하는 파드에만 적용됩니다. 기본적으로 이 Parameter의 값은 65532로 설정됩니다. |
securityContext.global.fsGroup | Pod에 연결된 볼륨의 소유 그룹 ID를 지정합니다. 이 설정은 NFS와 같은 외부 RWX 스토리지를 사용하는 Pod에만 적용됩니다. 기본적으로 Parameter는 65532로 설정됩니다. |
techcore.nn_training_workers.gpu | GPU 워커를 배포할지 여부를 지정합니다. GPU 워커는 Deep Learning activity를 사용하여 반정형 문서에서 데이터를 추출하기 위한 스킬 학습에 사용됩니다. 이 Parameter는 true 또는 false로 설정할 수 있습니다. Parameter가 true로 설정된 경우 techcore.nn_training_workers.enabled Parameter도 true로 설정해야 합니다. 이 옵션을 사용하도록 설정하고 techcore.nn_training_workers.gpu 및 techcore.nn_training_workers.enabled Parameter를 Vantage 설치 전이나 설치 후에 true로 설정할 수 있습니다. 자세한 내용은 Setting up GPU를 참조하세요. |
techcore.nn_training_workers.enabled | nn-extraction-training 및 nlp-model-train 워커를 배포할지 여부를 지정합니다. 이 워커들은 CPU를 사용하여 Deep Learning activity로 스킬을 학습시켜 반정형 문서에서 데이터를 추출하는 데 사용됩니다. 이 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 Reporting 서비스를 배포할지 여부를 지정합니다. 이 Parameter는 true 또는 false로 설정할 수 있습니다. |
id_reading.enabled | Identity Documents 애드온을 배포할지 여부를 지정합니다. 이 Parameter는 true 또는 false로 설정할 수 있습니다. |
The following four Parameter는 선택 사항이며, 고가용성 구성(Highly available configuration)을 설치하고 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 플레이북)를 사용하여 머신과 상호 작용합니다.
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 | 설명 |
|---|
-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 | 설명 |
|---|
-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
단계 6과 7은 Azure AKS 배포에는 필요하지 않습니다. 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
플레이북은 다음 작업을 수행합니다:
- 플레이북의
env_specific.yml 파일에 지정된 매개 변수를 사용하는 리소스(예: 데이터베이스 및 SMTP 연결)에 대해 사전 점검을 수행합니다.
- 시스템 관리자에게 EULA 및 ABBYY Privacy Policy 약관에 동의하도록 요청합니다.
9. 제품 설치:
ansible-playbook -i inventories/k8s -v playbooks/site-k8s-deploy.yml
ansible-playbook -i inventories/azure playbooks/site-azure-deploy.yml
플레이북은 메트릭 및 로그 수집 시스템을 배포하고 ABBYY Vantage를 배포합니다. 설치 완료에 필요한 시간은 선택한 머신의 성능에 따라 달라집니다. 평균적으로 이 프로세스는 약 10분 정도 소요됩니다. Kubernetes 관리 도구(예: Lens 유틸리티)를 사용하여 클러스터의 파드 및 Job 실행을 모니터링할 수 있습니다. 이를 위해, 가상 머신에 Kubernetes를 설치한 후 kube 폴더에 생성되는 kubeconfig 파일을 사용하십시오. 또한 아래 단계에 따라 Ansible 설치 로그 파일을 로컬 머신으로 다운로드할 수도 있습니다:
- Docker 컨테이너에서 로그아웃합니다.
- 다음 명령을 실행하여 컨테이너 목록을 가져옵니다:
설치 프로그램이 포함된 컨테이너의 이름을 확인합니다.
- 로그를 확인하기 위해 container_name을(를) 컨테이너의 이름으로 바꿔서 다음 명령을 실행합니다:
docker cp container_name:/ansible/ansible.log ansible.log
배포가 완료되면 다음 정보가 제공됩니다.
- 제공된 도메인 이름에 대한 URL
- 로그인, 테넌트 생성 및 문서 처리를 위해 사용할 수 있는 시스템 관리자 계정과 비밀번호
# Docker 컨테이너를 종료한 다음:
docker ps -a
# Find the container name, then:
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
비즈니스 프로세싱 리포팅 웨어하우스는 비즈니스 프로세스를 분석하고 특정 기간 동안의 데이터를 추적하는 데 사용됩니다. Vantage 설치 시 env_specific.yml 파일의 reporting.enabled parameter 값이 true로 설정된 경우 비즈니스 프로세싱 리포팅 웨어하우스도 함께 설치됩니다. reporting.enabled parameter 값이 false로 설정된 경우 다음 명령을 실행하여 Vantage 설치 후에 비즈니스 프로세싱 리포팅 웨어하우스를 설치할 수 있습니다:
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