Semaphore v2.18은 인프라 자동화 및 DevOps 팀을 위한 새로운 기능과 개선 사항을 제공합니다. 이번 릴리스는 개발자 경험을 향상시키고 infrastructure-as-code 워크플로를 간소화하는 데 중점을 둡니다.

클라우드 시크릿 관리자 통합

클라우드 플랫폼을 사용하는 조직은 자격 증명 중복을 피하고 기존 교체 정책을 활용하기 위해 런타임에 클라우드 제공업체의 시크릿 관리 서비스에서 직접 시크릿을 가져올 방법이 필요합니다. 이 기능은 AWS Secrets Manager 및 Azure Key Vault와의 네이티브 통합을 Enterprise 전용 기능으로 추가합니다.

Enterprise

  • AWS Secrets Manager 통합 — IAM 역할, 액세스 키 또는 수임 역할(assumed role)을 사용하여 런타임에 AWS Secrets Manager에서 시크릿을 가져옵니다. 필드 추출이 가능한 JSON 구조 시크릿과 자동 교체를 지원합니다. (#2248)
  • Azure Key Vault 통합 — 관리 ID(managed identity) 또는 서비스 주체(service principal) 인증을 사용하여 런타임에 Azure Key Vault에서 시크릿을 가져옵니다. 시크릿, 키, 인증서와 자동 교체를 지원합니다. (#2248, #3170)

더 읽어보기…

원격 저장소에서 시크릿 불러오기

이제 Semaphore는 HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, Devolutions Server에서 시크릿을 키 저장소로 자동으로 가져오고 동기화 상태를 유지할 수 있습니다.

시크릿 저장소를 HashiCorp Vault, AWS Secrets Manager, Azure Key Vault 또는 Devolutions Server로 지정한 다음, 하나 이상의 동기화 경로를 정의하여 가져오기를 제어합니다:

  • 경로 — 원격 저장소의 어떤 폴더/하위 트리에서 가져올지 지정합니다.
  • 접두사 — 생성되는 모든 키 이름 앞에 붙는 문자열로, 가져온 항목에 네임스페이스를 지정할 수 있습니다(예: prod-).
  • 구분자 — 중첩된 시크릿 위치를 하나의 읽기 쉬운 키 이름으로 평탄화하는 방식입니다(제공업체별로 적절한 기본값이 적용됩니다).

Semaphore는 올바른 키 유형(SSH 키, 로그인/비밀번호 또는 시크릿 문자열)을 자동으로 감지합니다. 가져오기는 지금 동기화를 통해 필요할 때 실행하거나, 분 단위로 설정한 백그라운드 일정에 따라 실행됩니다. 각 동기화는 미러를 완전히 조정(reconcile)하여 소스와 일치하도록 키를 추가, 업데이트, 제거하며, 수동으로 생성한 키는 그대로 유지합니다. 고가용성 배포에서는 중복 가져오기를 방지하기 위해 예약된 동기화가 단일 노드에서만 실행됩니다.

동기화 경로는 키 저장소 수준(공유 프로젝트 키)과 변수 그룹 수준(환경 변수) 모두에서 작동합니다.

템플릿당 여러 변수 그룹

이제 Semaphore는 각 작업 템플릿에 여러 변수 그룹(환경)을 연결하는 것을 지원합니다. 이전에는 하나의 변수 그룹만 연결할 수 있었기 때문에, 여러 템플릿이 공통 설정을 공유할 때 그룹 간에 변수를 중복하거나 모든 것을 담은 거대한 변수 그룹을 만들어야 했습니다. 이제 템플릿은 여러 변수 그룹을 조합할 수 있으며, 이번 릴리스에서는 직렬화, 우선순위, 전파, 설문(survey) 변수 수명 주기 등 변수 처리와 관련된 다수의 버그를 해결했습니다.

galaxy 설치 건너뛰기

플레이북을 실행하기 전에 Semaphore는 requirements.yml에 선언된 롤과 컬렉션을 다운로드하기 위해 ansible-galaxy install 단계를 실행합니다. 많은 환경에서 이 단계는 불필요합니다. 의존성이 이미 러너 이미지에 포함되어 있거나, 저장소에 벤더링되어 있거나, 내부 미러에서 제공되기 때문입니다. 작업마다 이 단계를 실행하면 지연 시간만 늘어나며, 인터넷 접근이 없는 에어갭 환경에서는 아예 실패합니다.

이번 릴리스에서는 작업 템플릿 설정에 galaxy 설치 건너뛰기 옵션을 추가했습니다. 이 옵션을 활성화하면 Semaphore는 ansible-galaxy install 준비 단계를 건너뛰고 곧바로 플레이북 실행으로 진행합니다. 이를 통해 작업 시작 속도가 빨라지고 실행 시점에 Ansible Galaxy 및 Git 접근에 대한 필수 의존성이 제거되므로, 오프라인 및 사전 프로비저닝된 러너에 특히 유용합니다.