목차


기능

활동 및 작업 로그를 파일에 기록하기 (PRO)

Semaphore Pro는 이제 활동 및 작업 로그를 파일에 기록하는 것을 지원합니다. 이를 활성화하려면 config.json에 다음 구성을 추가하세요:

{
  "log": {
    "events": {
      "enabled": true,
      "logger": {
        "filename": "./events.log"
      }
    },
    "task": {
      "enabled": true,
      "logger": {
        "filename": "./tasks.log"
      }
    }
  }
}

또는 다음 환경 변수를 사용하여 설정할 수 있습니다:

export SEMAPHORE_EVENT_LOG_ENABLED=True
export SEMAPHORE_EVENT_LOG_PATH=./tasks.log
export SEMAPHORE_TASK_LOG_ENABLED=True
export SEMAPHORE_TASK_LOG_PATH=./tasks.log

파일의 각 줄은 다음 형식을 따릅니다:

2024-01-03 12:00:34 user=234234 object=template action=delete ...

파일 로깅은 회전도 지원합니다. 더 많은 세부정보는 문서에서 확인할 수 있습니다.

API 토큰 페이지

원시 작업 로그 보기

이제 작업 로그 창의 오른쪽 하단에 있는 원시 로그 버튼을 클릭하여 작업의 원시 로그를 열 수 있습니다.

프로젝트 및 러너 캐시 지우기

Semaphore는 이제 캐시 관리에 대한 더 많은 제어를 제공합니다.

이전에는 사용하지 않는 캐시가 템플릿이나 프로젝트를 제거할 때 자동으로 지워졌습니다. 그러나 경우에 따라 남은 캐시가 남아 무기한 저장될 수 있었습니다.

새로운 캐시 지우기 기능을 사용하면 다음을 수동으로 정리할 수 있습니다:

이렇게 하면 디스크 공간을 확보하고 성능을 개선하며 환경을 깔끔하게 유지할 수 있습니다.

템플릿 및 작업에서 브랜치 재정의

이제 템플릿 설정에서 소스 리포지토리의 기본 브랜치를 재정의할 수 있습니다.

또는 실행 시 브랜치 선택 프롬프트 옵션을 활성화하여 작업을 실행할 때마다 브랜치를 선택할 수 있습니다.

OIDC 공급자 구성용 새로운 환경 변수

OpenID Connect (OIDC) 공급자를 구성하기 위해 새로운 환경 변수 SEMAPHORE_OIDC_PROVIDERS가 도입되었습니다.

이 변수는 Semaphore를 Docker 컨테이너 내에서 실행할 때 특히 유용합니다.

변수는 다음 형식의 유효한 JSON을 포함해야 합니다:

SEMAPHORE_OIDC_PROVIDERS='{
  "github": {
    "client_id": "***",
    "client_secret": "***"
    // 추가 필드...
  }
}'

새로운 임시 디렉토리 구조

우리는 각 프로젝트에 전용 폴더를 도입하여 임시 디렉토리 구조를 개선했습니다. 이제 각 프로젝트는 tmp_path 디렉토리 아래에 전용 폴더를 가집니다.

이 변경은 프로젝트가 제거될 때 캐시를 관리하고 정리하기 쉽게 만듭니다.

또한 템플릿의 인벤토리 디렉토리는 이제 다음과 같은 명확한 명명 형식을 따릅니다: tmp_path/project_0/repository_1_template_2_inventory_3 이 구조는 매 작업 실행 시 인벤토리 리포지토리를 복제하는 것을 방지하여 성능을 개선하고 중복성을 줄입니다.

외부 (LDAP 및 OIDC) 사용자 수동 추가 기능

이제 사용자가 처음 로그인하기 전에 Semaphore에 LDAP 및 OIDC 사용자를 추가할 수 있습니다.

이를 통해 미리 권한을 구성하고 프로젝트에 할당할 수 있습니다.

웹 인터페이스를 통해 사용자를 추가하려면 관리자 권한이 필요하며 (체크박스 외부), CLI를 사용하여 --external 플래그로 추가할 수 있습니다:

semaphore user add \
  --external \
  --login john \
  --name John \
  --email [email protected] \
  --password=changeme

설문 변수의 기본값 설정

이제 설문 변수에 대한 기본값을 설정할 수 있어 작업 실행 중 일반 입력을 미리 채우기가 더 쉬워졌습니다.

SMTP 서버 연결에 대한 TLS 지원

Semaphore는 이제 SMTP 서버를 통해 이메일을 보낼 때 보안 TLS 연결을 지원합니다. 구성 예시:

{
  "email_alert": true,
  "email_sender": "[email protected]",
  "email_host": "smtp.example.com",
  "email_username": "user123",
  "email_password": "changeme",
  "email_tls": true,
  "email_port": "587",
  "email_tls_min_version": "1.1" // 선택 사항 (기본값 1.2)
}

구성 가능한 Ansible 플레이북 상세 수준

이제 Ansible 플레이북 작업을 실행할 때 원하는 상세 수준을 선택할 수 있어 디버깅 및 문제 해결에 도움이 됩니다.

Chroot 지원 및 다른 사용자로 작업 실행

Semaphore는 이제 chroot 환경 내에서 지정된 사용자로 작업을 실행할 수 있어 보안과 격리를 개선합니다. 구성 예시:

{
  "process": {
    "chroot": "/opt/semaphore/chroot",
    "user": "semrun"
  }
}

환경 변수 예시:

SEMAPHORE_PROCESS_CHROOT=/opt/semaphore/chroot
SEMAPHORE_PROCESS_USER=semrun

Bitbucket Webhook 인증 지원

이제 Bitbucket webhook 인증을 사용하여 통합을 구성할 수 있습니다.

일정의 시간대 설정

Semaphore는 더 이상 시스템 시간대를 사용하지 않습니다. 대신, 이제 다음 구성 옵션을 사용하여 일정에 대한 시간대를 명시적으로 설정할 수 있습니다:

{
  "schedule": {
    "timezone": "Asia/Calcutta"
  }
}

또는 다음 환경 변수를 사용하여 설정할 수 있습니다:

SEMAPHORE_SCHEDULE_TIMEZONE=Asia/Calcutta

버그 수정