Semaphore란 무엇인가
Semaphore UI는 이미 보유하고 있는 자동화를 실행하기 위한 셀프 호스팅 웹 인터페이스이자 REST API입니다. Ansible 플레이북, Terraform 구성, 셸 스크립트가 들어 있는 Git 저장소를 지정하고, 어떤 자격 증명과 호스트를 사용할지 알려 주면, Semaphore는 팀이 그 자동화를 실행하고, 필요한 시크릿을 저장하고, 모든 실행 기록을 남기는 단일 창구가 됩니다.
태스크를 개별적으로 실행하거나 Workflows(Pro)를 사용해 하나의 파이프라인으로 묶어 빌드, 테스트, 배포, 인프라 자동화를 연결할 수 있습니다.
Semaphore는 Ansible, Terraform, 혹은 여러분의 스크립트를 대체하지 않습니다. 누군가의 노트북이 아니라 서버에서 그것들을 실행할 뿐입 니다.
해결하는 문제
자동화는 대개 워크스테이션에서 시작됩니다. 엔지니어 한 명이 플레이북, 인벤토리, SSH 키, 그리고 알맞은 버전의 Ansible을 갖추고 있습니다. 두 번째 사람이 같은 작업을 실행해야 하거나, 지난 화요일에 어떤 호스트에서 무엇이 바뀌었는지 누군가 물어보기 전까지는 이 방식이 통합니다.
Semaphore는 실행을 공유 서버로 옮기고, 빠져 있던 부분을 채워 줍니다.
| 빠져 있던 부분 | Semaphore가 제공하는 것 |
|---|---|
| 모두가 도구를 설치해야 함 | 서버(또는 러너) 한 대에만 설치하면 되고, 사용자는 브라우저만 있으면 됩니다. |
| 자격 증명이 노트북 사이를 오감 | 암호화된 키 저장소가 시크릿을 사용자가 아니라 실행에 전달합니다. |
| 누가 무엇을 실행했는지 기록이 없음 | 모든 태스크가 출력, 종료 상태, 사용자, 시간을 보관합니다. |
| 플레이북 하나 실행하려고 root 권한을 줄 수는 없음 | 역할이 누가 실행하고, 편집하고, 보기만 할 수 있는지 결정합니다. |
| 누군가 기억할 때만 실행됨 | 스케줄, 웹훅, API 호출이 실행을 시작합니다. |