Semaphore 설정을 코드로 관리

지원되는 프로젝트, 리포지토리, 작업 템플릿을 코드로 정의하세요. 자동화 플랫폼을 변경하기 전에 Terraform plan을 검토합니다.

main.tf
resource "semaphoreui_project" "production_ops" {  name = "Production operations"  alert = true  max_parallel_tasks = 10}

아직 Semaphore를 수동으로 설정하시나요?

프로젝트마다 설정을 반복하면 시간이 듭니다. 수동 변경은 추적을 놓치기 쉽습니다.

Terraform 프로바이더로 지원 Semaphore 리소스를 Git에 정의하고 적용 전 변경을 검토하세요.

Terraform으로 첫 Semaphore 프로젝트 생성

API로 Semaphore 프로젝트, 리포지토리, 작업 템플릿을 관리하는 Terraform 설정
  1. 01

    프로바이더를 Semaphore에 연결

    Semaphore 주소를 설정하고 API 토큰으로 인증하세요.

  2. 02

    Git에서 리소스 정의

    프로젝트, 리포지토리, 작업 템플릿을 선언하세요. 인프라 설정과 같은 풀 리퀘스트에서 변경을 검토합니다.

  3. 03

    plan 검토 후 적용

    적용 전에 변경 제안을 검토하세요. 다음 업데이트를 위해 설정은 Git에 보관합니다.

작업이 의존하는 플랫폼 관리

팀이 실행하는 작업 관리

지원되는 프로바이더 리소스에 재사용할 실행 설정을 보관하세요.

작업 템플릿

API로 설정 연결

프로바이더는 동일한 플랫폼 API로 Semaphore를 설정합니다.

API 및 웹훅

프로바이더와 Semaphore의 역할 경계

작업을 실행하는 플랫폼 설정

프로바이더 README에는 프로젝트, 환경, 인벤토리, 키, 리포지토리, 예약, 템플릿, 사용자, 뷰가 나열됩니다. 리소스 지원 범위는 프로바이더 버전별입니다. 모든 UI 설정이 표현된다고 가정하지 말고 레지스트리 문서로 정확한 필드와 수명 주기 동작을 확인하세요.

적용 전 플랫폼 변경 검토

플랜은 관리 리소스의 변경 제안을 팀이 확인하도록 돕습니다. 템플릿 변경은 향후 운영 실행에 영향을 줄 수 있으므로 실행 소스와 같은 주의를 기울여 차이를 검토하세요. Terraform 상태와 프로바이더 자격 증명에도 적절한 접근 제어와 백엔드 전략이 필요합니다.

현재 유지보수 모델 이해

프로바이더 리포지토리는 현재 AI 지원을 통한 베스트 에포트 유지보수이며 적극 유지보수되지 않는다고 설명합니다. 이는 도입 시 중요한 고려 사항입니다. 중요한 프로비저닝 의존 요소로 삼기 전에 사용하는 리소스를 테스트하고 버전을 고정하며 열린 이슈를 읽으세요.

FAQ

Semaphore Terraform 프로바이더는 무엇을 관리하나요?

프로바이더는 Semaphore API를 통해 프로젝트, 리포지토리, 템플릿 등 문서화된 리소스 계열의 지원 리소스를 관리합니다. 플랫폼 자체를 설정하는 것입니다. 클라우드 인프라를 관리하는 Terraform 코드를 Semaphore로 실행하는 것과 다릅니다. 웹 UI에 설정이 있다는 것만으로 프로바이더가 지원한다는 증거가 아니므로 고정한 버전의 리소스 및 인수 문서를 확인하세요.

프로바이더를 사용하려면 Semaphore 안에서 Terraform을 실행해야 하나요?

아니요. 환경이 Semaphore API에 접근하고 필요한 권한으로 인증할 수 있다면 Terraform을 실행하는 어느 곳에서나 프로바이더를 실행할 수 있습니다. 워크스테이션이나 기존 설정 파이프라인을 사용할 수 있습니다. 프로바이더 실행 환경, API 자격 증명, 상태 백엔드를 명시하세요. 나중에 Semaphore 자체를 통해 실행한다면 플랫폼 설정과 이를 실행하는 능력을 모두 복구할 수 있도록 그 의존 관계를 신중하게 평가하세요.

OpenTofu에서 Semaphore Terraform 프로바이더를 사용할 수 있나요?

프로바이더는 Terraform 프로바이더 프로토콜을 사용하며 로컬 테스트는 OpenTofu에서 semaphoreui/semaphore 0.3.9를 고정하고 격리된 Semaphore 2.19.12 인스턴스를 사용했습니다. 이 테스트는 기존 프로젝트 읽기, 일회용 프로젝트 생성, 후속 plan의 드리프트 없음을 확인했습니다. Terraform CLI나 모든 프로바이더 리소스를 테스트하지는 않았습니다. 도입 전에 자체 버전을 고정하고 팀에 필요한 리소스와 수명 주기 동작을 검증하세요.

UI에서 만든 기존 리소스를 Terraform으로 가져올 수 있나요?

고정한 프로바이더 버전 문서에서 각 리소스의 가져오기 지원 여부와 필요한 식별자를 확인하세요. 모든 리소스가 같은 가져오기 동작을 한다고 가정하지 마세요. 플랜을 적용하기 전에 기존 설정을 어떻게 표현하고 이후 변경을 어떤 시스템이 관리할지 결정하세요. 비프로덕션 리소스부터 시작하여 생성된 상태와 변경 제안을 살펴보고, 정상 작동하는 공유 설정을 실수로 교체하지 않도록 하세요.

Semaphore 설정을 Git에 보관할 수 있나요?

네. 지원되는 Semaphore 리소스의 Terraform 설정을 버전 관리 리포지토리에 보관하고 일반 풀 리퀘스트 절차로 변경을 검토하세요. 프로바이더는 Semaphore API로 설정을 적용합니다. API 자격 증명은 코드와 별도 저장하고 팀이 관리하는 설정에 적합한 상태 백엔드를 사용하세요.

프로바이더로 작업 템플릿을 관리할 수 있나요?

작업 템플릿은 프로바이더 문서의 리소스 계열에 포함됩니다. 고정한 프로바이더 버전이 지원하는 정확한 인수는 레지스트리 레퍼런스를 사용하세요. 템플릿 변경은 이후 자동화 실행에 영향을 줄 수 있으므로 팀이 업데이트된 작업을 사용하기 전에 plan을 검토하고 Semaphore의 최종 설정을 확인하세요.

프로바이더는 Semaphore에서 Terraform을 실행하는 것과 같은가요?

서로 다른 목적을 가집니다. 프로바이더는 API로 Semaphore 설정을 관리합니다. Terraform 작업 템플릿은 Semaphore에서 인프라 설정을 실행합니다. 각각 독립적으로 사용할 수 있습니다. 기존 Terraform 환경에서 자동화 플랫폼을 설정하고 템플릿으로 팀이 이미 관리하는 인프라 작업을 실행하세요.

프로바이더 API 토큰과 Terraform 상태는 어디에 보관해야 하나요?

지원되는 프로바이더 설정으로 API 토큰을 제공하고 Git에 커밋하지 마세요. 팀에 맞는 접근 및 백업 제어를 가진 Terraform 상태 백엔드를 선택하세요. 프로바이더 실행 환경에는 Semaphore로의 네트워크 접근과 설정에 선언한 리소스를 관리할 수 있는 ID가 필요합니다.