소개
Terralist는 Terraform/OpenTofu용 프라이빗 레지스트리입니다. 모듈과 프로바이더를 자체 호스팅하여 관리할 수 있게 해주며, REST API를 통해 제어할 수 있는 웹 대시보드와 역할 기반 접근 제어(RBAC)를 제공합니다.
상세정보
프로그램 소개
Terralist는 Terraform 및 OpenTofu 모듈과 프로바이더를 위한 프라이빗 레지스트리입니다. 조직 내에서 자체 호스팅 방식으로 인프라 코드 자산을 업로드, 버전 관리, 배포할 수 있게 설계되었습니다.
주요 기능
- 프라이빗 모듈/프로바이더 레지스트리: Terraform/OpenTofu 모듈과 프로바이더를 업로드하고, 버전을 관리하며, 조직 내부에 배포할 수 있습니다.
- 웹 대시보드: 브라우저를 통해 아티팩트를 탐색하고, 문서를 조회하며, 권한과 API 키를 관리할 수 있습니다.
- 역할 기반 접근 제어(RBAC): 기본 제공 역할(admin, readonly, anonymous)과 Casbin을 통한 사용자 정책으로 세밀한 접근 제어가 가능합니다.
- 다양한 OAuth 제공자 지원: GitHub, GitLab, BitBucket 또는 OIDC와 호환되는 모든 제공자를 통해 인증할 수 있습니다.
- API 키 및 스코프 정책: CI/CD를 위한 API 키를 생성하고, 키별 RBAC 정책과 조직 범위를 설정할 수 있습니다.
- 스토리지 백엔드: AWS S3, Azure Blob, Google Cloud Storage, 로컬 파일 시스템 또는 프록시 모드에서 아티팩트를 저장할 수 있습니다.
- 프로메테우스 메트릭: 업로드, 다운로드, API 키 사용량, 스토리지 작업, HTTP 요청 지연 시간을 모니터링할 수 있습니다.
- 단일 바이너리: 외부 의존성 없이 Go가 컴파일되는 모든 환경에서 실행됩니다.
다운로드 및 설치 방법
GitHub 릴리스 페이지에서 최신 버전의 바이너리를 다운로드하여 압축을 해제하면 됩니다. Chocolatey 패키지를 통해서도 설치할 수 있습니다.
기본 구성 파일(config.yaml)을 생성하여 OAuth 제공자, 클라이언트 ID/시크릿, 토큰 서명 시크릿 등을 설정한 후 서버를 시작합니다.
기본 사용법
서버를 시작한 후 브라우저에서 http://localhost:5758에 접속하면 웹 대시보드를 사용할 수 있습니다.
Terraform 코드에서 프라이빗 레지스트리의 모듈과 프로바이더를 사용하는 예시는 다음과 같습니다:
- 모듈 사용: source를 ‘registry.example.com/my-org/vpc/aws’와 같은 형식으로 지정합니다.
- 프로바이더 사용: required_providers 블록에서 소스를 프라이빗 레지스트리 주소로 지정합니다.
이런 경우에 유용합니다
회사 내부의 Terraform 모듈과 프로바이더를 안전하게 관리하고 싶을 때, 다수의 팀이 인프라 코드 자산을 공유할 때, CI/CD 파이프라인에서 프라이빗 레지스트리에 접근해야 할 때 유용합니다.
지원 환경 및 시스템 요구사항
Go 언어로 빌드된 단일 바이너리이므로 Windows, Linux, macOS 등 Go가 지원하는 모든 운영체제에서 실행 가능합니다. 자체 호스팅을 위해 스토리지 백엔드(S3, Azure Blob, GCS, 로컬 파일시스템 등)가 필요합니다.
최신 버전 및 업데이트
GitHub 릴리스 페이지에서 최신 버전을 확인할 수 있으며, 현재 제공된 버전은 0.10.8입니다.
제한 사항 및 확인 사항
Terraform/OpenTofu 레지스트리 프로토콜을 따르므로 Terraform CLI와의 통합을 위해서는 HTTPS 구성이 필요할 수 있습니다. 공식 문서에서 자세한 설정 방법을 확인할 수 있습니다.
FAQ
- Terralist는 오픈소스인가요? 예, MPL-2.0 라이선스로 오픈소스로 공개되어 있습니다.
- Windows에서 실행할 수 있나요? 예, Go로 빌드된 단일 바이너리이므로 Windows를 포함한 여러 운영체제에서 실행 가능합니다.
- 인터넷 연결이 필요한가요? 자체 호스팅 방식이므로 내부 네트워크에서만 사용할 수 있으며, 외부 인터넷 연결 없이도 작동합니다.
- 기존 Terraform 모듈을 마이그레이션할 수 있나요? 예, 공식 Terraform 레지스트리 프로토콜을 지원하므로 기존 모듈과 프로바이더를 프라이빗 레지스트리로 마이그레이션할 수 있습니다.
시스템 요구사항
Go언어로 빌드된 단일 바이너리로, 외부 의존성이 없습니다. 자체 호스팅을 위해 파일 시스템, AWS S3, Azure Blob Storage, Google Cloud Storage 등 스토리지 백엔드가 필요합니다.


