Semaphore UI와 Rundeck 비교: Ansible 및 런북 자동화

Denis GukovSemaphore UI 창립자 겸 CTO
읽는 시간 17분

Rundeck과 Semaphore UI는 반복 가능한 작업을 팀이 실행, 예약하고 검토할 수 있는 잡으로 만듭니다. 잡을 구성하는 방식, 호스트 표현과 접근 위임 방식이 다릅니다. 이 비교는 Rundeck 6.2.1과 Semaphore UI 2.20.0을 대상으로 하며 상용 기능은 별도로 표시합니다.

AI와 이 글 논의하기

개요

재시작, 데이터베이스 백업과 새 테스트 환경은 절차가 엔지니어 한 명의 노트북에만 있으면 공유하기 어려워집니다. 동료에게는 올바른 대상, 자격 증명과 입력을 갖춘 반복 가능한 작업과 검토할 결과가 필요합니다. Rundeck과 Semaphore UI는 서로 다른 작업 준비 모델로 이 공유 공간을 제공합니다.

Rundeck은 명령, 플러그인 동작과 다른 잡 참조로 운영 런북을 구성합니다. 머신을 노드로 표현하여 운영자가 필터로 선택하고 관리자가 접근 제어 정책으로 관리할 수 있습니다. 내장 Ansible 통합으로 플레이북과 인벤토리를 이 모델에 가져올 수도 있습니다. PagerDuty Runbook Automation은 SaaS 및 셀프 호스팅 상품으로 상용 기능을 추가합니다.

Semaphore UI는 Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell과 Python의 재사용 가능한 템플릿에서 시작합니다. 프로젝트는 저장소, 인벤토리, 자격 증명과 변수를 모읍니다. 엔지니어는 배포나 유지보수 작업을 준비하고 동료에게 실행 폼을 제공하며 같은 템플릿으로 반복 작업을 예약할 수 있습니다. 프로비저닝, 설정과 검사를 순서대로 실행해야 한다면 워크플로로 연결합니다.

한 프로젝트에서 여러 자동화 도구를 위한 Semaphore UI 작업 템플릿.
Semaphore UI. 준비된 Ansible, Infrastructure as Code와 명령줄 작업이 프로젝트 작업 목록을 공유합니다.
개별 노드의 실행 상태를 보여주는 Rundeck 잡 결과.
Rundeck. 개별 노드별 결과를 보고하는 잡. 공식 문서 예시. 출처

핵심 비교

두 제품 모두 수동 실행과 반복 잡을 처리합니다. 주요 차이는 기존 자동화를 공유 작업으로 만드는 방식, 대상 호스트를 표현하는 방식과 Infrastructure as Code 관리 방식입니다.

Rundeck과 Semaphore UI: 주요 특성
비교 항목 Semaphore UI Rundeck
자동화 도구 Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell, Python 명령, 스크립트, 내장 Ansible 통합과 플러그인
설치 바이너리, 네이티브 패키지, Docker, Kubernetes 네이티브 패키지, 실행 가능한 WAR, Docker, Java 런타임
호스팅 셀프 호스팅 셀프 호스팅 Community, 상용 SaaS 또는 셀프 호스팅
실행 서버 또는 러너, 선택적 작업 컨테이너 서버와 원격 노드, 상용 Enterprise Runner
잡 설정 도구별 템플릿, 입력 폼과 변수 그룹 다단계 잡, 옵션, 노드 필터와 플러그인
인벤토리 관리 정적 및 Git 인벤토리, Ansible 검색 플러그인 노드 레코드, 리소스 모델 소스와 노드 필터
자격 증명 재사용 가능한 Key Store 항목, 외부 볼트 통합 재사용 가능한 Key Storage 항목, 외부 저장소 플러그인
워크플로 템플릿 사이의 시각적 연결 단계, 잡 참조, 워크플로 전략과 오류 처리기
접근 제어 프로젝트 역할, Enterprise 사용자 정의 역할, 템플릿 권한 프로젝트, 잡, 노드와 키 저장소의 ACL 정책
라이선스 MIT 라이선스 Community, 상용 Pro 및 Enterprise Apache 2.0 Community, 상용 Runbook Automation

기존 Ansible 플레이북을 보유한 팀을 위해 Semaphore UI는 재사용 가능한 프로젝트 리소스를 바탕으로 도구별 템플릿에 플레이북, 인벤토리, 자격 증명과 실행 입력을 보관합니다. 같은 프로젝트에 Terraform/OpenTofu 프로비저닝과 이후 호스트 유지보수를 담고 선택적으로 Pro state backend를 사용할 수 있습니다. Rundeck도 내장 통합으로 전체 플레이북과 Ansible 인벤토리를 재사용할 수 있습니다. 머신 선택과 노드 수준 접근 제어가 운영자의 일상 업무라면 노드 레코드, 필터와 ACL이 특히 유용합니다.

기능 비교

운영 서비스는 잡 준비, 대상 환경 접근, 입력 수집과 이해하기 쉬운 결과 제공까지 전체 절차를 지원해야 합니다. 이 과정에서 실행 가능한 도구 목록보다 많은 차이가 드러납니다.

설치 및 설정

자동화 서비스와 명령을 실행하는 머신은 같은 시스템일 필요가 없습니다. 배포 선택은 초기 설정과 사설 환경 접근 모두에 영향을 줍니다.

지원부분 지원미지원
설치 및 설정: Rundeck과 Semaphore UI
비교 항목 Semaphore UI Rundeck
셀프 호스팅 배포 지원 지원
독립 실행형 네이티브 바이너리 지원 미지원Java 런타임 필요
네이티브 Linux 패키지 지원 지원
Docker 배포 지원 지원
네이티브 Windows 서버 지원 지원Java 런타임 필요
고가용성 지원Enterprise 지원Runbook Automation

Rundeck은 Java 런타임과 네이티브 패키지, 실행 가능한 WAR 또는 Docker를 사용하여 Kubernetes 없이 일반 서버에서 실행됩니다. 초기 설정용 H2가 번들로 포함됩니다. H2는 프로덕션에서 지원되지 않으므로 운영 설치에는 지원되는 외부 데이터베이스를 설정합니다. 상용 Runbook Automation은 관리형 서비스로도 제공됩니다.

Semaphore UI는 독립 바이너리, 네이티브 패키지와 Docker뿐 아니라 Kubernetes도 제공합니다. 운영 팀은 JVM을 도입하지 않고 기존 호스트에 서비스를 배치하고 자동화 저장소를 연결할 수 있습니다. 소수의 반복 절차를 위한 공유 인터페이스가 필요할 때나 더 큰 팀이 자동화를 셀프 호스팅할 때 유용합니다. 두 제품 모두 서버를 Windows에서 실행할 수 있으며 Rundeck에는 Java가 필요합니다. Ansible 실행에는 Linux, WSL 또는 Linux 러너나 컨테이너 같은 지원되는 제어 환경이 필요합니다. 네이티브 Windows 웹 서버라고 Windows가 네이티브 Ansible 제어 노드가 되는 것은 아닙니다.

자동화 도구

팀은 구성 관리와 프로비저닝, 소규모 유지보수 프로그램을 함께 사용하는 경우가 많습니다. 두 플랫폼 모두 이 도구를 실행할 수 있지만 필요한 잡 설정의 양이 다릅니다.

지원부분 지원미지원
자동화 도구: Rundeck과 Semaphore UI
비교 항목 Semaphore UI Rundeck
Ansible 플레이북 지원Task Template 지원내장 Ansible 통합
Terraform/OpenTofu 지원Task Template 지원명령 또는 스크립트 단계
Terragrunt 지원Task Template 지원명령 또는 스크립트 단계
Bash 지원Task Template 지원명령 또는 스크립트 단계
PowerShell 지원Task Template 지원명령 또는 스크립트 단계
Python 지원Task Template 지원명령 또는 스크립트 단계
내장 Terraform state backend 지원ProHTTP backend와 state 이력 미지원Terraform에 설정된 backend 사용

Rundeck의 내장 Ansible 통합은 플레이북과 모듈을 실행하고 Ansible 인벤토리를 가져올 수 있습니다. 따라서 기존 플레이북을 개별 명령 단계로 다시 작성할 필요가 없습니다. 명령 및 스크립트 단계는 필요한 인터프리터가 있으면 Bash, PowerShell과 Python도 실행합니다.

Semaphore UI는 지원하는 각 도구에 고유한 템플릿 설정을 제공합니다. Ansible 작업은 플레이북과 인벤토리를 선택합니다. Terraform/OpenTofu와 Terragrunt 템플릿은 인프라 설정과 workspace를 제공하며 Bash, PowerShell과 Python 템플릿은 해당 파일을 직접 실행합니다. Ansible 중심 팀의 프로비저닝과 보조 유틸리티를 호스트 작업과 같은 인터페이스에 유지할 수 있습니다.

테스트 환경 요청이 이점을 잘 보여줍니다. Terraform/OpenTofu가 인프라를 만들고 Ansible이 호스트를 설정하며 Python이 애플리케이션 엔드포인트를 확인할 수 있습니다. 각 Semaphore UI 템플릿은 도구별 설정을 유지하고 공유 저장소, 인벤토리와 Variable Group 객체를 참조합니다. Rundeck은 워크플로 단계, 플러그인과 잡 참조로 같은 절차를 표현합니다. 차이는 자동화에 사용할 언어가 아니라 팀이 설정을 준비하고 재사용하는 방식입니다.

공유 Terraform/OpenTofu state도 필요한 팀을 위해 Semaphore UI Pro는 workspace, 버전 이력과 UI 관리를 갖춘 HTTP backend를 포함합니다. 기존 외부 backend도 계속 사용할 수 있습니다. Rundeck은 인프라 코드에 설정된 backend로 Terraform을 실행할 수 있습니다. Rundeck Terraform provider는 Rundeck 설정을 관리하며, 이는 인프라 잡의 state 저장과 다른 목적입니다.

정확히 저장된 Terraform plan을 승인하고 적용해야 하는 프로세스에는 명시적인 plan 저장과 재사용을 설정해야 합니다. Semaphore UI의 기본 실행은 plan과 apply를 별도로 수행하고 재정의하지 않으면 기본 명령에 -lock=false를 사용합니다. state backend를 제공해도 작업 명령 설정은 바뀌지 않습니다.

설정과 일정

재사용 가능한 작업에는 저장된 정의, 공유 설정과 실행 폼이 필요합니다. 예약 실행도 운영자가 명령을 다시 만들게 하지 않고 이 준비를 재사용해야 합니다.

지원부분 지원미지원
설정과 일정: Rundeck과 Semaphore UI
비교 항목 Semaphore UI Rundeck
자동화 저장소 설정 지원템플릿이 공유하는 저장소 객체 부분 지원잡 정의용 SCM, 코드용 Git 단계
잡 간 공유 설정 지원이름 있는 Variable Groups 지원프로젝트 전역 변수와 잡 옵션
실행 폼 지원 지원
반복 일정 지원 지원

Rundeck은 저장된 절차를 잡이라고 부릅니다. 워크플로 단계와 실행 입력을 수집하는 옵션을 결합하며 필수 값, 검증과 외부 URL에서 가져온 선택지를 포함합니다. 런북 자체가 노드 동작과 플러그인 단계의 순서를 정의할 때 잘 맞습니다.

Semaphore UI에서 Task Template은 하나의 자동화 작업을 위한 재사용 가능한 설정입니다. Ansible 서비스 재시작의 경우 엔지니어가 저장소, 플레이북, 인벤토리와 자격 증명을 선택하고 공유 설정을 위한 Variable Group을 연결합니다. 입력 폼으로 동료에게 서비스 이름이나 변경 참조를 요청할 수 있습니다. 다음 실행에서도 이 준비를 재사용하므로 동료는 명령줄을 재구성하지 않고 작업을 다룹니다.

저장소 객체는 여러 템플릿을 위해 Git URL, 기본 브랜치와 접근 자격 증명을 한곳에 보관합니다. 팀은 플레이북 저장소를 한 번 연결하고 백업, 배포와 인증서 갱신에 재사용할 수 있습니다. Rundeck Git SCM 통합은 잡 정의를 버전 관리하고 가져옵니다. 잡이 사용하는 자동화 코드를 가져오는 것은 별도 단계나 통합입니다.

이름 있는 Variable Groups는 Semaphore UI 템플릿에 재사용 가능한 환경 설정 묶음을 제공합니다. 한 리전의 엔드포인트와 도메인 설정을 함께 관리하고 사용하는 작업에 연결할 수 있습니다. Rundeck도 프로젝트 전역 변수로 값을 공유하고 잡 옵션으로 실행별 값을 수집합니다. Semaphore UI는 그룹과 할당 관계를 템플릿 설정에 표시합니다.

같은 패턴은 반복 작업에도 적용됩니다. 데이터베이스 백업 플레이북을 설정된 입력으로 cron 일정에 따라 실행하거나 유지보수 전에 수동 실행할 수 있습니다. 인증서 검사, 갱신과 패치는 같은 인벤토리를 대상으로 별도 템플릿을 사용할 수 있습니다. 두 플랫폼 모두 반복 일정을 지원하므로 차이는 저장된 잡과 주변 설정이 기존 자동화에 얼마나 잘 맞는지에 있습니다.

인벤토리

지원부분 지원미지원
인벤토리: Rundeck과 Semaphore UI
비교 항목 Semaphore UI Rundeck
Ansible 인벤토리 재사용 지원인벤토리 정의 직접 사용 지원Ansible 인벤토리 사용 및 노드 가져오기
동적 호스트 탐색 지원Ansible 인벤토리 플러그인 지원리소스 모델 소스
대상 호스트 선택 지원인벤토리 그룹과 Ansible 호스트 limit 지원노드 필터, 태그와 속성

Rundeck은 리소스 모델 소스와 플러그인으로 채운 노드로 머신을 표현합니다. 운영자는 잡을 시작할 때 속성과 태그로 노드를 필터링할 수 있습니다. 노드 ACL과 결합하면 중앙에서 관리하는 시스템 중 허용된 머신을 선택하는 지원 또는 운영 팀에 유용합니다.

Semaphore UI는 Ansible 인벤토리 정의를 직접 재사용합니다. 템플릿은 INI/YAML 정의, Git의 인벤토리 또는 Ansible 검색 플러그인을 사용할 수 있습니다. Git이나 외부 시스템이 이미 환경을 정의한다면 그 원본을 유지하며 준비된 작업 전반에서 인벤토리를 재사용할 수 있습니다. Rundeck Ansible 통합도 이 인벤토리를 자체 노드 모델로 가져올 수 있습니다.

프로젝트 내 Semaphore UI Ansible 인벤토리 설정.
Semaphore UI. Ansible 인벤토리는 준비된 Task Template이 재사용하는 공유 프로젝트 리소스입니다.
Ansible 인벤토리에서 가져온 호스트, 태그와 대상 주소를 표시하는 Rundeck Nodes 화면.
Rundeck. 공식 통합 예시의 Ansible 인벤토리에서 가져온 노드. 공식 문서

인벤토리는 일상 업무에서도 재사용됩니다. 같은 프로덕션 인벤토리로 인증서 검사, 배포와 백업을 수행하고 각각 별도 템플릿과 입력을 사용할 수 있습니다. 시스템 구성이 바뀌면 엔지니어가 인벤토리 원본을 변경하고 동료는 계속 준비된 작업을 사용합니다. 운영자가 개별 노드를 직접 탐색하고 필터링해야 한다면 Rundeck 호스트 선택 인터페이스는 여전히 중요한 차이입니다.

시크릿

지원부분 지원미지원
시크릿: Rundeck과 Semaphore UI
비교 항목 Semaphore UI Rundeck
저장된 자격 증명 지원 지원
HashiCorp Vault 지원Pro 지원Key Storage 플러그인
AWS Secrets Manager 지원Enterprise 지원CommercialKey Storage 플러그인
Azure Key Vault 지원Enterprise 지원CommercialKey Storage 플러그인
OpenBao 지원Pro 부분 지원사용자 지정 조회 단계
Devolutions Server 지원Enterprise 부분 지원사용자 지정 API 또는 스크립트 단계
CyberArk 지원EnterprisePVWA REST 통합 지원CommercialKey Storage 플러그인

준비된 작업에는 자격 증명을 반복해서 가져올 방법이 필요합니다. Rundeck Key Storage와 Semaphore UI Key Store는 엔지니어가 자격 증명 참조를 한 번 설정하게 하므로 동료가 백업이나 배포를 시작할 때마다 SSH 키나 비밀번호를 붙여 넣을 필요가 없습니다. Semaphore UI에서는 저장된 키를 프로젝트 저장소와 Ansible 작업 전반에서 재사용할 수도 있습니다.

조직이 중앙 시크릿 저장소를 이미 사용한다면 자동화 서비스가 값을 가져올 수 있습니다. Rundeck Community는 Key Storage 플러그인으로 HashiCorp Vault를 지원하며 이 플러그인은 상용 Runbook Automation에 번들로 포함됩니다. Semaphore UI Pro는 HashiCorp Vault와 OpenBao를 통합합니다. Enterprise는 AWS Secrets Manager, Azure Key Vault, Devolutions Server와 CyberArk를 추가합니다. 기존 시크릿 관리 프로세스를 유지하면서 자동화 인터페이스로 준비된 잡을 공유할 수 있다는 이점이 있습니다.

상용 Rundeck Key Storage 플러그인은 AWS Secrets Manager, Azure Key Vault와 CyberArk에도 연결합니다. Semaphore UI Enterprise는 Devolutions Server와 함께 이러한 통합을 제공합니다. 따라서 어느 제품에서도 기존 시크릿 서비스를 권위 있는 원본으로 유지할 수 있습니다. Semaphore UI의 Key Store와 템플릿 참조는 자격 증명을 Ansible 인벤토리 및 도구 설정과 함께 보관하고 Rundeck은 저장소 경로를 잡 옵션, 플러그인과 노드 실행에 연결합니다.

OpenBao나 Devolutions Server를 위해 Rundeck 잡에 시크릿 서비스 API를 사용하는 사용자 지정 조회 단계를 넣을 수 있습니다. 팀이 조회와 인증을 제공하고 유지합니다. 이름 있는 Key Storage 플러그인이나 Semaphore UI에 설정된 저장소 연결과는 다르며, 기존 시크릿 서비스가 필수라면 평가에 이 작업도 포함해야 합니다.

실행

잡은 사설 호스트, 가까운 러너 또는 통제된 런타임에서 실행해야 할 수 있습니다. 웹 서비스의 위치만으로 이러한 실행 선택이 결정되지는 않습니다.

지원부분 지원미지원
실행: Rundeck과 Semaphore UI
비교 항목 Semaphore UI Rundeck
원격 실행 지원러너 지원SSH 및 노드 실행기
원격 실행 허브 지원러너 지원Runbook AutomationEnterprise Runner
실행 라우팅 지원Pro프로젝트 러너와 태그 지원Runbook Automation러너 태그
동시 실행 제어 지원템플릿 및 프로젝트 제한 지원다중 실행과 노드 스레드
컨테이너화된 잡 실행 지원ProDocker 작업 실행기 지원Docker 명령 또는 실행 플러그인

실행을 사설 인프라 가까이에 둘 수 있습니다. 예를 들어 고객 네트워크 안의 Semaphore UI 러너가 해당 네트워크에서 접근 가능한 호스트에 Ansible 유지보수 플레이북을 실행할 수 있습니다. Community는 전역 러너를 포함하고 Pro는 프로젝트 할당 러너와 태그 기반 라우팅을 추가합니다. Docker 작업 실행은 Pro부터, Kubernetes 작업 실행은 Enterprise에서 제공됩니다. 두 제품의 라우팅 모델 모두 해당 상용 에디션에서 태그로 실행 머신을 선택할 수 있습니다.

Rundeck Community도 이미 SSH나 다른 노드 실행기로 원격 노드에 명령을 실행합니다. 상용 Enterprise Runner는 원격 환경에 별도 실행 허브를 제공합니다. 모든 원격 실행을 유료 기능으로 취급하지 말고 각 절차의 실행 위치와 필요한 연결을 비교하세요. 어느 애플리케이션이든 Docker에 설치하는 것과 각 잡을 자체 컨테이너에서 실행하는 것은 별개입니다.

두 서비스 모두 동시 작업을 제어합니다. Semaphore UI는 템플릿별 병렬 실행과 프로젝트별 실행 작업 수 제한을 설정합니다. Rundeck은 잡의 다중 실행을 허용하고 노드 디스패치 스레드 수를 설정할 수 있습니다. 이 설정으로 기본 플레이북이나 런북을 바꾸지 않고 실행 자원을 공유할 수 있습니다.

워크플로

서비스 업데이트에는 백업, 설정 변경, 검증과 실패 후 복구가 필요할 수 있습니다. 조합 방식과 재사용 가능한 하위 절차가 팀의 런북 유지 방식을 결정합니다.

지원부분 지원미지원
워크플로: Rundeck과 Semaphore UI
비교 항목 Semaphore UI Rundeck
워크플로 편집기 지원준비된 템플릿을 연결하는 그래프 지원워크플로 전략을 갖춘 단계 편집기
다중 도구 워크플로 지원 지원
재사용 가능한 하위 워크플로 미지원 지원잡 참조
워크플로 값 전달 지원 지원
성공 및 실패 처리 지원작업 결과에 따른 분기 지원단계 오류 처리기와 워크플로 전략
승인 체크포인트 지원워크플로 승인 노드 부분 지원외부 승인 게이트와 개별 실행 잡

여러 작업이 하나의 절차를 이루면 Semaphore UI 워크플로가 성공/실패 경로, 승인과 지연으로 템플릿을 연결합니다. 예를 들어 백업 후 Ansible 업데이트와 검증 작업을 실행할 수 있습니다. Rundeck은 재사용 가능한 잡 참조, 단계별 오류 처리기와 한 번 실행할 단계 및 선택한 각 노드에서 실행할 단계를 구분하는 전략을 제공합니다. Semaphore UI는 개별 템플릿을 여러 워크플로에서 재사용하지만 완전한 워크플로를 다른 워크플로에 포함할 수는 없습니다.

두 플랫폼 모두 수집한 값을 후속 단계에 전달합니다. Semaphore UI 2.20은 Ansible set_stats, Terraform/OpenTofu/Terragrunt 출력과 Bash, PowerShell 또는 Python의 JSON을 수집한 뒤 대상 입력에 매핑합니다. 수집은 서버나 러너의 로컬 실행기에서 작동하지만 Docker와 Kubernetes 실행기에서는 작동하지 않습니다. Rundeck은 로그 필터로 데이터를 수집하고 내장 Global Variable 단계로 후속 단계나 상위 잡에 값을 제공합니다. 두 모델 모두 호스트 주소 같은 값은 직접 전달할 수 있지만 파일이나 아카이브는 다음 단계가 접근할 저장소나 명시적 전송이 필요합니다. 받는 템플릿은 입력을 선언하고 플레이북이나 인벤토리 설정이 이를 사용해 새 호스트를 대상으로 지정합니다.

프로덕션 업데이트에서 Semaphore UI 워크플로는 민감한 작업 전에 승인 노드에서 일시 중지할 수 있습니다. 2.20 승인 권한은 프로젝트 작업 실행 권한을 따르며 독립 승인자 역할은 2.21에 예정되어 있습니다. Rundeck 잡 참조와 API를 사용하면 승인 절차를 개별 실행 잡으로 나누고 외부 승인 프로세스에 연결할 수 있습니다. 이 경우 일반 잡 실행을 강제 승인으로 간주하지 말고 팀이 승인 게이트와 후속 실행을 구현해야 합니다.

많은 런북이 같은 다단계 복구 절차를 공유하면 중첩 Rundeck 잡 참조가 특히 유용합니다. Semaphore UI에서는 재사용 단위가 플레이북 하나나 도구 호출 하나일 때 공통 작업을 템플릿으로 두는 방식이 잘 맞습니다. 다른 워크플로 안에 워크플로가 필요한 절차는 API 오케스트레이션이나 다른 분해 방식이 필요하며 설정과 결과 처리가 추가됩니다.

접근 제어와 인증

동료에게 서비스 재시작 버튼을 제공하려면 허용된 절차, 호스트와 로그인 방식도 결정해야 합니다. 이러한 제어는 운영자가 작업을 선택하는 방식과 맞아야 합니다.

지원부분 지원미지원
접근 제어와 인증: Rundeck과 Semaphore UI
비교 항목 Semaphore UI Rundeck
프로젝트 접근 제어 지원프로젝트 역할 지원ACL 정책
노드별 접근 정책 미지원대신 준비된 잡의 범위 제한 지원
잡 수준 실행 권한 지원Enterprise 지원
LDAP 및 Active Directory 로그인 지원Pro 지원JAAS LDAP 설정

Rundeck ACL 정책은 잡, 노드와 다른 리소스를 구분합니다. 특정 절차와 일부 호스트에 운영자 접근을 허용할 수 있어 여러 런북에서 대상을 선택하는 경우 유용합니다.

Semaphore UI는 프로젝트와 준비된 템플릿을 중심으로 작업을 위임합니다. Community 프로젝트 역할만으로도 모든 운영자에게 자동화 리소스 편집 책임을 주지 않고 동료가 작업을 실행하게 할 수 있습니다. 팀은 서비스 재시작, 백업과 검사를 프로젝트에 모으고 엔지니어가 정의를 유지하며 동료가 필요한 작업을 시작할 수 있습니다.

프로젝트 전체 실행 접근이 너무 넓으면 Enterprise의 사용자 지정 역할과 템플릿 수준 실행 권한을 사용할 수 있습니다. 예를 들어 지원 담당자에게는 서비스 재시작 템플릿만 제공하고 배포는 다른 역할로 제한할 수 있습니다. 인벤토리, 자격 증명과 허용된 실행 재정의는 여전히 템플릿 설정에 속합니다. 임의의 잡 전체에 적용되는 독립 노드 권한과는 다른 모델입니다.

Semaphore UI Pro는 LDAP/Active Directory 및 OIDC 로그인과 로컬 TOTP를 추가합니다. Rundeck은 로컬 계정과 LDAP 및 Active Directory를 포함한 JAAS 디렉터리 인증을 지원합니다. 인증은 사용자를 식별하고 프로젝트 역할이나 ACL 정책은 실행 가능한 작업을 별도로 정합니다. 준비된 작업에는 위임 범위에 맞는 호스트 및 매개변수 재정의만 노출해야 합니다.

로그 및 감사

실행 기록은 작업이 실패한 이유를 설명합니다. 감사 추적은 누가 서비스를 사용하거나 변경했는지 답하며 보안 팀이 별도로 수집할 수 있습니다.

지원부분 지원미지원
로그 및 감사: Rundeck과 Semaphore UI
비교 항목 Semaphore UI Rundeck
실행 이력과 로그 지원 지원
호스트 결과 요약 지원ProAnsible 호스트 요약 지원노드 및 워크플로 단계 결과
관리 감사 기록 지원관리자 감사 로그 화면, 기록 활성화 필요 지원로컬 감사 추적 파일
감사 이벤트 내보내기 지원ProTLS Syslog 및 Splunk HEC 지원CommercialAudit Stream 플러그인

실행 후 동료는 작성자에게 재현을 요청하지 않고도 결과를 알아야 합니다. 두 제품 모두 실행 결과와 로그를 보관합니다. Rundeck은 잡 단계와 노드 결과를 표시합니다. Semaphore UI는 각 작업의 상태, 출력, 저장소 리비전과 실행 세부 정보를 보관하므로 사고 조사 시 같은 실행을 다시 확인할 수 있습니다.

Ansible 패치나 인증서 작업에 대해 Semaphore UI Pro는 성공 호스트와 서버별 실패 작업을 보여주는 호스트 요약을 추가합니다. 운영자는 영향받은 호스트에서 시작해 해당 출력을 확인할 수 있습니다. 이 요약 없이도 Community 작업 이력과 로그는 유용합니다. 실행 기록은 자동화 실행을 설명하며 관리 감사 이벤트는 별도 목적을 가집니다.

Rundeck은 감사 리스너로 감사 이벤트를 기록하며 ACL 결정은 별도 권한 로그에 남깁니다. 상용 Runbook Automation은 외부 서비스용 Audit Stream 플러그인을 추가하고 로깅 에이전트로 로컬 파일을 수집할 수도 있습니다. Semaphore UI는 기록을 활성화하면 관리자 감사 로그 화면을 제공하고 Pro는 TLS Syslog나 Splunk HEC로 이벤트를 전달합니다. 보안 팀은 접근 및 설정 검토에 이 기록을 쓰고 엔지니어는 작업 로그와 호스트 요약으로 작업 자체를 조사할 수 있습니다.

연동

지원부분 지원미지원
연동: Rundeck과 Semaphore UI
비교 항목 Semaphore UI Rundeck
REST API 지원 지원
인바운드 웹훅 지원요청 매칭과 입력 추출 지원Run Job 핸들러
작업 알림 지원이메일, Slack, Teams 및 기타 채널 지원이메일, 웹훅과 알림 플러그인

Rundeck 플러그인 시스템은 실행, 검색, 알림과 시크릿 저장을 지원하며 일부 통합은 상용 Runbook Automation 전용입니다. 인바운드 웹훅은 Run Job 같은 핸들러를 사용합니다. 여러 운영 제품에 특화된 동작이 필요한 런북에서 이러한 폭넓은 지원이 유용합니다.

Semaphore UI는 요청 매칭과 입력 추출을 갖춘 REST API 및 웹훅 통합을 제공합니다. CI 파이프라인이 릴리스를 빌드하고 게시한 다음 버전 식별자로 준비된 배포를 요청할 수 있습니다. Semaphore UI는 배포 인벤토리, 자격 증명과 실행 이력을 보관하고 CI 시스템은 빌드를 계속 담당합니다. 호출하는 통합은 인증을 처리하고 완료를 기다려야 한다면 작업 결과를 확인해야 합니다.

Semaphore UI 내장 알림 채널에는 이메일, Slack, Microsoft Teams, Telegram, Rocket.Chat, DingTalk와 Gotify가 있습니다. Rundeck은 이메일, 웹훅과 알림 플러그인으로 잡 이벤트 알림을 보냅니다. 따라서 백업이나 인증서 검사 실패를 기존 운영 채널에 전달하고 실행 기록은 자동화 서비스에 보관할 수 있습니다. 채팅의 대화형 승인은 알림 링크 전송 이상의 구현이 필요합니다.

AI를 활용한 자동화

지원부분 지원미지원
AI를 활용한 자동화: Rundeck과 Semaphore UI
비교 항목 Semaphore UI Rundeck
MCP 커넥터 지원커뮤니티 커넥터 지원공식 MCP 서버

Rundeck은 어시스턴트를 인스턴스 API에 연결하는 공식 MCP 서버를 제공합니다. Semaphore UI에는 커뮤니티 MCP 커넥터가 있으며 2.21.0에서 Pro 공식 MCP 지원을 제공할 계획이라고 발표했습니다. 문서와 API도 MCP 연결 없이 코딩 어시스턴트가 설정을 준비하고 잡 출력을 조사하는 데 도움이 됩니다.

라이선스 및 지원

두 제품 모두 무료 오픈 소스 에디션이 있습니다. 상용 기능, 선택한 호스팅 모델과 지원 계약에 따라 팀이 비용을 지불하고 운영하는 범위가 달라집니다.

Rundeck 선택지

Rundeck Community는 Apache 2.0 라이선스입니다. 상용 상품인 PagerDuty Runbook Automation은 전문 지원과 함께 Enterprise Runner, 클러스터링과 추가 플러그인 같은 기능을 제공합니다. SaaS 옵션은 애플리케이션 서비스 운영 책임도 공급업체로 이전합니다.

Semaphore UI 에디션

Semaphore UI Community는 무료 MIT 라이선스입니다. 템플릿, 입력 폼, Variable Groups, 일정, 프로젝트 역할, 작업 이력과 전역 러너만으로 공유 운영 서비스를 지원합니다. Pro는 Terraform state backend, 프로젝트 러너, Docker 작업 실행과 외부 볼트 통합 등을 추가합니다. Enterprise는 사용자 지정 역할, 템플릿 권한, Kubernetes 작업 실행과 고가용성을 추가합니다. Pro와 Enterprise에서 상용 지원을 제공하며 약정은 해당 요금제와 계약으로 정합니다.

운영 비용

Ansible 중심 팀에서는 Semaphore UI로 기존 플레이북과 IaC 설정을 공유하기 위한 준비를 줄일 수 있습니다. 도구별 템플릿과 재사용 프로젝트 리소스가 명령 래퍼나 추가 잡 설정이 필요할 수 있는 작업을 처리합니다. 네이티브 바이너리는 JVM 없는 배포 경로도 제공합니다. 목적에 집중한 설치를 운영하기 쉽게 만들 수 있지만 기존 Rundeck 서비스가 이미 필요한 통합과 잡 모델을 제공할 수도 있습니다.

선택 기준

동료가 수행할 절차에서 시작하세요. 서비스 재시작, 백업, 배포 또는 환경 프로비저닝일 수 있습니다. 누가 준비하고 누가 대상을 선택하며 플랫폼이 어느 부분을 관리해야 하는지가 중요합니다.

Rundeck을 선택할 때

런북과 노드 모델이 일상 운영의 중심이라면 Rundeck이 적합합니다.

  • 운영자가 플랫폼에서 노드를 선택하고 관리합니다. 노드 속성, 필터와 독립 노드 정책이 여러 잡에 걸쳐 운영자가 작업할 수 있는 머신을 결정합니다.
  • 절차가 재사용 가능한 잡 단계와 플러그인에 의존합니다. 잡 참조, 노드별 단계와 오류 처리기가 필요한 복구 또는 유지보수 절차를 모델링합니다.
  • 관리형 서비스나 기존 통합이 중요합니다. 상용 Runbook Automation은 팀이 직접 유지해야 할 SaaS 호스팅, 실행 허브와 제품별 통합을 제공할 수 있습니다.

Semaphore UI를 선택할 때

전용 작업 템플릿으로 기존 플레이북, Terraform/OpenTofu 설정이나 스크립트를 공유하려면 Semaphore UI를 선택하세요. Ansible 전용 또는 IaC 전용 워크플로에 쓰거나 여러 도구를 하나의 운영 서비스로 모을 수 있습니다.

  • Ansible 플레이북이 이미 작업을 정의합니다. 패치, 재시작, 백업과 인증서 갱신에 저장소, 인벤토리와 자격 증명을 재사용하고 동료가 제공할 값은 입력 폼으로 받습니다.
  • 프로비저닝과 유지보수를 같은 서비스에서 다뤄야 합니다. Terraform/OpenTofu나 Terragrunt를 직접 사용하고 워크플로로 설정과 검사를 연결하며 공유 backend가 필요하면 Pro state 저장소를 추가합니다.
  • 대상이 이미 Ansible 인벤토리에서 제공됩니다. 자동화 플랫폼에 별도 노드 카탈로그나 노드 수준 권한을 만들지 않고 준비된 작업 전반에서 정의를 재사용합니다. Community에서 프로젝트 템플릿을 공유하고 특정 작업으로 접근을 제한해야 할 때 Enterprise 권한을 추가합니다.
  • 목적에 집중한 셀프 호스팅 설치를 원합니다. 기존 인프라에서 바이너리, 패키지나 컨테이너를 실행하고 사설 시스템 근처에 러너를 배치하며 실행 및 지원 요구가 늘면 상용 에디션을 선택할 수 있습니다.

Rundeck과 Semaphore UI 함께 사용하기

노드 필터나 전문 플러그인에 의존하는 Rundeck 런북은 유지하면서 Ansible과 IaC 작업을 재사용 가능한 Semaphore UI 템플릿으로 옮길 수 있습니다. 예를 들어 Rundeck 복구 잡이 Semaphore UI 작업 API를 호출하여 템플릿에 준비된 인벤토리와 자격 증명으로 선택한 호스트에 Ansible 복구를 실행할 수 있습니다. 기존 런북을 재사용하면서 설정, 프로비저닝과 예약 유지보수에 Semaphore UI를 도입하는 방식입니다.

팀이 완성된 통합을 설치하는 것이 아니라 이 연결을 구축합니다. 호출 잡에는 API 토큰, 네트워크 접근, 선택한 노드와 템플릿 호스트 limit 입력의 매핑, 반환된 작업의 최종 상태 확인 로직이 필요합니다. 런북에서 대상을 제공해야 하면 템플릿의 호스트 limit 재정의를 활성화하세요. Rundeck 노드 이름을 템플릿이 기대하는 Ansible 인벤토리 호스트 이름에 매핑해야 합니다. 실행에는 Semaphore UI API 계정 자체의 권한이 적용되며 Rundeck 노드 수준 권한이 요청과 함께 전달되지는 않습니다. 기존 Rundeck 런북에 가치가 있다면 두 서비스를 운영하는 것이 유용하지만 그렇지 않으면 작업을 통합하여 추가 통합 유지보수를 피할 수 있습니다.

자주 묻는 질문

기존 Ansible 플레이북과 인벤토리를 재사용할 수 있나요?

예. Rundeck 내장 Ansible 통합은 플레이북을 실행하고 인벤토리를 노드 모델로 가져옵니다. Semaphore UI는 Task Template으로 플레이북을 재사용 가능한 인벤토리, 자격 증명 참조와 Variable Groups에 연결합니다. 같은 인벤토리를 배포, 인증서 검사와 다른 준비된 작업에 사용할 수 있습니다.

동료가 자동화를 편집하지 않고 서비스를 재시작할 수 있나요?

예. Semaphore UI Community 프로젝트 역할은 엔지니어가 설정을 관리하는 동안 Task Runner가 준비된 템플릿을 실행하게 합니다. 프로젝트 전체 실행 접근이 너무 넓으면 Enterprise가 선택된 템플릿 권한을 추가합니다. Rundeck은 잡과 노드 ACL을 사용하며 운영자가 여러 런북에서 허용된 호스트도 선택해야 할 때 유용합니다.

잡이 사설 네트워크 안의 시스템에 접근할 수 있나요?

예. Semaphore UI는 대상 시스템 근처의 러너를 통해 실행할 수 있으며 Pro는 프로젝트 할당과 태그 기반 라우팅을 추가합니다. Rundeck Community도 원격 노드에 명령을 전달하고 상용 Enterprise Runner는 별도 실행 허브를 추가합니다. 적절한 모델은 자동화 런타임과 네트워크 연결의 위치에 따라 다릅니다.

Rundeck 런북을 Semaphore UI로 옮길 때 무엇을 매핑해야 하나요?

기존 플레이북과 지원되는 명령 파일은 재사용할 수 있지만 잡 옵션, 노드 필터, 자격 증명, 권한과 단계 관계에는 대응하는 템플릿 및 워크플로 설정이 필요합니다. 특히 잡 참조와 오류 처리기를 확인하세요. Semaphore UI는 개별 템플릿을 여러 워크플로에서 재사용하지만 완전한 워크플로를 다른 워크플로 안에 포함하지 않습니다.

Rundeck과 Semaphore UI를 함께 사용할 수 있나요?

예. Rundeck 잡이 Semaphore UI API를 호출해 준비된 Ansible 또는 IaC 작업을 시작하고 최종 상태를 확인할 수 있습니다. 노드 중심이거나 플러그인 의존도가 높은 런북은 Rundeck에 유지하고 Semaphore UI에서 도구별 작업과 이후 유지보수를 처리할 수 있습니다. API 연결과 결과 처리는 팀이 구현합니다.

이 글이 도움이 되었나요?

출처

  1. Semaphore UI, “Semaphore automation applications”. URL: https://semaphoreui.com/docs/user-guide/apps (열람일: ).
  2. Semaphore UI, “Semaphore installation methods and dependencies”. URL: https://semaphoreui.com/docs/admin-guide/installation (열람일: ).
  3. Semaphore UI, “Semaphore global runners”. URL: https://semaphoreui.com/docs/admin-guide/runners/ (열람일: ).
  4. Semaphore UI, “Semaphore workflow nodes and approvals”. URL: https://semaphoreui.com/docs/user-guide/workflows (열람일: ).
  5. Semaphore UI, “Semaphore Community, Pro and Enterprise”. URL: https://semaphoreui.com/pricing (열람일: ).
  6. Semaphore UI, “Semaphore Terraform HTTP backend”. URL: https://semaphoreui.com/docs/user-guide/apps/terraform/states (열람일: ).
  7. Semaphore UI, “Semaphore project access”. URL: https://semaphoreui.com/docs/user-guide/projects (열람일: ).
  8. Semaphore UI, “Semaphore inventories”. URL: https://semaphoreui.com/docs/user-guide/inventory (열람일: ).
  9. Semaphore UI, “Semaphore variable groups”. URL: https://semaphoreui.com/docs/user-guide/environment (열람일: ).
  10. Semaphore UI, “Semaphore scheduled tasks”. URL: https://semaphoreui.com/docs/user-guide/schedules (열람일: ).
  11. Semaphore UI, “Semaphore Key Store”. URL: https://semaphoreui.com/docs/user-guide/key-store (열람일: ).
  12. Semaphore UI, “Semaphore high availability prerequisites”. URL: https://semaphoreui.com/docs/admin-guide/ha#prerequisites (열람일: ).
  13. Semaphore UI, “Semaphore local execution, workflow outputs, inventory paths, host limits and branch overrides”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/local_executor.go (열람일: ).
  14. Semaphore UI, “Semaphore task dispatch, runner routing, concurrency and remote workflow outputs”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/TaskPool.go (열람일: ).
  15. PagerDuty, “Installing Rundeck”. URL: https://docs.rundeck.com/docs/administration/install/ (열람일: ).
  16. PagerDuty, “Instance System Requirements”. URL: https://docs.rundeck.com/docs/administration/install/system-requirements.html (열람일: ).
  17. Rundeck contributors, “Rundeck 6.2.1 Apache 2.0 license”. URL: https://github.com/rundeck/rundeck/blob/v6.2.1/LICENSE (열람일: ).
  18. Rundeck contributors, “Rundeck 6.2.1 release”. URL: https://github.com/rundeck/rundeck/releases/tag/v6.2.1 (열람일: ).
  19. PagerDuty, “Integrate with Ansible”. URL: https://docs.rundeck.com/docs/learning/howto/using-ansible.html (열람일: ).
  20. PagerDuty, “Builtin Node Steps”. URL: https://docs.rundeck.com/docs/manual/jobs/job-plugins/node-steps/builtin.html (열람일: ).
  21. PagerDuty, “Creating jobs”. URL: https://docs.rundeck.com/docs/manual/jobs/creating-jobs.html (열람일: ).
  22. PagerDuty, “Job Options”. URL: https://docs.rundeck.com/docs/manual/jobs/job-options.html (열람일: ).
  23. PagerDuty, “Job Workflows”. URL: https://docs.rundeck.com/docs/manual/jobs/job-workflows.html (열람일: ).
  24. PagerDuty, “Builtin Workflow Steps and global variables”. URL: https://docs.rundeck.com/docs/manual/jobs/job-plugins/workflow-steps/builtin.html (열람일: ).
  25. PagerDuty, “Overview of Access Control”. URL: https://docs.rundeck.com/docs/learning/getting-started/acl-overview.html (열람일: ).
  26. PagerDuty, “Enterprise Runner”. URL: https://docs.rundeck.com/docs/administration/runner/runner-overview.html (열람일: ).
  27. PagerDuty, “Runbook Automation”. URL: https://docs.rundeck.com/docs/enterprise/ (열람일: ).
  28. PagerDuty, “Runbook Automation SaaS”. URL: https://docs.rundeck.com/docs/about/cloud/ (열람일: ).
  29. PagerDuty, “Plugin Developer Guide”. URL: https://docs.rundeck.com/docs/developer/ (열람일: ).
  30. PagerDuty, “Rundeck / Runbook Automation MCP Server”. URL: https://docs.rundeck.com/docs/mcp/ (열람일: ).
  31. Semaphore UI, “Semaphore REST API”. URL: https://semaphoreui.com/api-docs (열람일: ).
  32. Semaphore UI, “Semaphore team roles and template-level permissions”. URL: https://semaphoreui.com/docs/user-guide/team#extended-rbac (열람일: ).
  33. Semaphore UI, “Semaphore source and MIT license”. URL: https://github.com/semaphoreui/semaphore (열람일: ).
  34. Semaphore UI, “Semaphore workflow input mapping model”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Workflow.go#L27-L44 (열람일: ).
  35. Semaphore MCP contributors, “Semaphore MCP connector”. URL: https://github.com/cloin/semaphore-mcp (열람일: ).
  36. Semaphore UI, “Semaphore task template options and survey field types”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Template.go (열람일: ).
  37. PagerDuty, “API Reference”. URL: https://docs.rundeck.com/docs/api/ (열람일: ).
  38. PagerDuty, “Integrate with HashiCorp Vault”. URL: https://docs.rundeck.com/docs/learning/howto/vault-integration.html (열람일: ).
  39. PagerDuty, “Webhooks”. URL: https://docs.rundeck.com/docs/manual/webhooks.html (열람일: ).
  40. Semaphore UI, “Tasks, execution history and Ansible summaries”. URL: https://semaphoreui.com/docs/user-guide/tasks (열람일: ).
  41. Semaphore UI, “Terraform plan and apply command construction in the Semaphore UI 2.20 candidate”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db_lib/TerraformApp.go (열람일: ).
  42. PagerDuty, “Node Sources Overview”. URL: https://docs.rundeck.com/docs/manual/projects/resource-model-sources/ (열람일: ).
  43. PagerDuty, “Nodes”. URL: https://docs.rundeck.com/docs/manual/05-nodes.html (열람일: ).
  44. PagerDuty, “Activity”. URL: https://docs.rundeck.com/docs/manual/08-activity.html (열람일: ).
  45. PagerDuty, “Rundeck Key Storage”. URL: https://docs.rundeck.com/docs/manual/key-storage/ (열람일: ).
  46. Semaphore UI, “Netbox Dynamic Inventory Integration with Semaphore”. URL: https://semaphoreui.com/docs/user-guide/inventory/netbox-dynamic-inventory (열람일: ).
  47. Semaphore UI, “Semaphore UI integrations”. URL: https://semaphoreui.com/docs/user-guide/integrations (열람일: ).
  48. Semaphore UI, “Repositories and shared automation checkout”. URL: https://semaphoreui.com/docs/user-guide/repositories (열람일: ).
  49. PagerDuty, “Git SCM for job definitions”. URL: https://docs.rundeck.com/docs/manual/projects/scm/git.html (열람일: ).
  50. PagerDuty, “Job variables and project global variables”. URL: https://docs.rundeck.com/docs/manual/jobs/job-variables.html (열람일: ).
  51. Rundeck, “AWS Secrets Manager Key Storage plugin”. URL: https://docs.rundeck.com/docs/manual/key-storage/storage-plugins/aws-secrets-manager.html (열람일: ).
  52. Rundeck, “Azure Key Vault Key Storage plugin (Commercial)”. URL: https://docs.rundeck.com/docs/manual/key-storage/storage-plugins/azure-vault.html (열람일: ).
  53. Semaphore UI, “Semaphore UI authentication”. URL: https://semaphoreui.com/docs/admin-guide/authentication (열람일: ).
  54. Rundeck, “Authenticating Rundeck users”. URL: https://docs.rundeck.com/docs/administration/security/authentication.html (열람일: ).
  55. Semaphore UI, “Semaphore UI audit log and forwarding”. URL: https://semaphoreui.com/docs/admin-guide/audit-log (열람일: ).
  56. Rundeck, “Rundeck audit trail log”. URL: https://docs.rundeck.com/docs/administration/security/audit-trail.html (열람일: ).
  57. Semaphore UI, “View the Semaphore UI audit log”. URL: https://semaphoreui.com/docs/admin-guide/audit-log/view (열람일: ).
  58. Rundeck, “Rundeck application and audit logs”. URL: https://docs.rundeck.com/docs/administration/maintenance/logs.html (열람일: ).
  59. Semaphore UI, “Semaphore UI notification channels”. URL: https://semaphoreui.com/docs/admin-guide/notifications (열람일: ).
  60. Rundeck, “Rundeck job notifications”. URL: https://docs.rundeck.com/docs/manual/jobs/job-notifications.html (열람일: ).
  61. Semaphore UI, “OpenBao secret storage”. URL: https://semaphoreui.com/docs/user-guide/key-store/openbao (열람일: ).
  62. Semaphore UI, “Devolutions Server secret storage”. URL: https://semaphoreui.com/docs/user-guide/key-store/devolutions-server (열람일: ).
  63. Semaphore UI, “CyberArk secret storage”. URL: https://semaphoreui.com/docs/user-guide/key-store/cyberark (열람일: ).
  64. Rundeck, “CyberArk Key Storage plugin (Commercial)”. URL: https://docs.rundeck.com/docs/manual/key-storage/storage-plugins/cyberark-storage.html (열람일: ).
  65. Rundeck, “Rundeck 6.2.1 audit log listener”. URL: https://github.com/rundeck/rundeck/blob/v6.2.1/plugins/audit-logging-plugin/src/main/groovy/org/rundeck/plugin/audit/AuditLoggerPlugin.groovy (열람일: ).
  66. Rundeck, “Rundeck 6.2.1 audit event dispatch”. URL: https://github.com/rundeck/rundeck/blob/v6.2.1/rundeckapp/src/main/groovy/rundeck/services/audit/AuditEventsService.groovy (열람일: ).
  67. Rundeck, “Rundeck Audit Stream plugin”. URL: https://docs.rundeck.com/docs/administration/security/audit-stream-plugin.html (열람일: ).

위에 나열한 문서, 저장소와 제품 정보를 바탕으로 Semaphore UI Team이 작성한 비교입니다. 각 출처에 열람일을 기록했습니다.