워크플로우 (Pro)
워크플로우를 사용하면 여러 작업 템플릿을 분기, 승인, 시간 지정 일시 중지가 포함된 방향 그래프(DAG)로 연결할 수 있습니다. 워크플로우 실행은 각 단계가 완료될 때마다 자동으로 진행됩니다. 시각적 편집기에서 그래프를 한 번 설계한 다음, 워크플로우 페이지에서 실행을 시작하면 됩니다.
정보
워크플로우는 Semaphore Pro 기능입니다. 워크플로우 메뉴 항목은 구독에 해당 기능이 포함된 경우에만 표시됩니다.
개요
워크플로우는 다음으로 구성됩니다:
- 노드 — 그래프의 단계입니다(템플릿 실행, 승인 대기, 지연을 위한 일시 중지, 또는 메모로 주석 달기).
- 엣지 — 노드 간의 연결입니다. 각 엣지에는 다운스트림 노드가 언제 시작되는지를 제어하는 조건이 지정됩니다.
워크플로우를 시작하면 Semaphore가 워크플로우 실행을 생성합니다. 진행은 서버가 주도합니다. 작업이 완료되거나, 승인이 처리되거나, 지연이 만료되면 엣지 조건에 따라 다운스트림 노드가 시작됩니다.
워크플로우 만들기
- 프로젝트를 열고 워크플로우로 이동합니다.
- 새 워크플로우를 클릭합니다.
- 그래픽 편집기에서:
- 팔레트의 노드를 캔버스로 드래그합니다.
- 한 노드의 출력 핸들에서 다른 노드로 드래그하여 노드를 연결합니다.
- 노드나 엣지를 클릭하면 사이드 패널에서 속성을 편집할 수 있습니다.
- 이름을 설정합니다(실행 버전 관리를 위해 선택적으로 시작 버전도 설정할 수 있습니다).
- 문제 패널에 나열된 문제를 모두 해결한 다음 저장을 클릭합니다.
편집기는 저장하기 전에 그래프를 검증합니다. 유효한 워크플로우는 노드가 하나 이상 있어야 하고, 시작 노드(들어오는 엣지가 없는 노드)가 정확히 하나여야 하며, 순환이 없어야 하고, 실행 가능한 모든 노드의 설정이 완전해야 합니다.
노드 종류
| 종류 | 용도 |
|---|---|
| 작업 | 작업 템플릿을 실행합니다. 작업 매개변수를 통해 노드별로 템플릿 매개변수(인벤토리, 환경, Ansible limit, 추가 CLI 인수)를 재정의할 수 있습니다. |
| 승인 | 권한이 있는 사용자가 승인하거나 거부할 때까지 실행을 일시 중지합니다. 선택적으로 타임아웃(초)과 승인 메시지를 설정할 수 있습니다. |
| 지연 | 설정된 시간(초)만큼 기다린 후 다운스트림 노드로 진행합니다. 냉각 기간, 유지 보수 시간대, 종속 단계 사이의 간격 두기에 유용합니다. |
| 메모 | 캔버스의 자유 형식 주석입니다. 메모 노드는 실행되지 않으며 엣지로 연결되지도 않습니다. 문서화 용도로만 사용됩니다. |