EVA Deployer는 Ansible로 EVA 설치 환경과 서비스를 구성하는 배포 도구입니다. 권장 운영체제는 Ubuntu 24.04입니다. 네트워크 조건이 다른 환경에도 동일한 EVA Release를 설치할 수 있도록, 제품 구성은 유지하고 컨테이너 이미지의 공급 경로만 선택합니다.

EVA Deployer 저장소: https://github.com/spectrabrain/eva-deployer/tree/v3.1.0

Repository 기반 배포 모드

설치 시 이미지 출처는 repository_mode로 결정합니다. 기본값은 cloud_repository입니다.

모드 적용 환경 이미지 공급 경로
cloud_repository 대상 서버가 인터넷과 외부 Repository에 접근 가능 AWS ECR, Docker Hub, S3 등 외부 Repository
remote_repository 대상 서버는 인터넷에 접근할 수 없지만 Main 서버에는 접근 가능 Main 서버의 Harbor
local_repository 외부 인터넷과 네트워크가 모두 차단된 폐쇄망 대상 환경의 Local Harbor

Main 서버와 remote_repository

Main 서버는 외부 인터넷에 접근할 수 있는 중앙 서버입니다. 이 서버에서 EVA 설치 자산·모델·컨테이너 이미지를 내려받고 Harbor에 등록하며, 대상 서버에 Ansible을 실행하는 제어 서버 역할도 수행합니다.

remote_repository는 대상 서버가 외부 인터넷, AWS ECR, Docker Hub, S3에 직접 접근할 수 없지만 Main 서버의 Harbor에는 연결할 수 있을 때 사용합니다. 대상 서버는 Main Harbor에서 이미지를 pull하여 설치하고, Main 서버는 인터넷을 통해 최신 설치 자산과 이미지를 준비합니다. 따라서 여러 인터넷 차단 사업장 또는 서버에 같은 EVA Release를 배포할 때 중앙의 Main 서버 하나를 공통 이미지 공급원으로 사용할 수 있습니다.

이 모드에서는 대상 서버의 k3s 노드와 Pod가 Main Harbor의 hostname:port에 도달할 수 있어야 합니다. repository_registry에는 대상 서버에서 실제로 접근 가능한 Main Harbor 주소를 지정합니다.

remote_repository와 local_repository에서는 다음 값을 모든 playbook에 동일하게 지정합니다.

repository_mode=<remote_repository|local_repository>
repository_registry=<Harbor host:port>
repository_project=eva

repository_registry에는 https://를 제외하고, k3s 노드와 Pod가 실제로 접근할 수 있는 Harbor hostname 또는 IP를 사용합니다.

버전과 폐쇄망 자산 관리

EVA App·Agent·Vision과 Helm Chart 버전은 versions.json에서 단일하게 관리합니다. 세 배포 모드는 이미지 공급 경로만 다르며, EVA Release의 구성과 버전은 동일합니다.

local_repository에서는 EVA·인프라 이미지, AI 모델, Helm Chart·설치 자산, Python·Ansible·apt bundle, Harbor Offline Installer와 manifest를 준비 서버에서 검증한 뒤 저장 매체로 반입합니다.

설치 순서

1. 인프라 준비 및 설치

Repository 모드를 정하고 필요한 설치 자산·이미지·Harbor를 준비합니다. 이어서 Inventory 작성, 사전 점검, k3s·NFS CSI·NVIDIA runtime/device plugin 설치와 GPU MIG 설정을 진행합니다.

인프라 설치

2. EVA 솔루션 설치