본문으로 건너뛰기

설정 파일

설정 파일 생성​

Semaphore는 핵심 설정에 config.json 파일을 사용합니다. 이 파일은 내장 도구를 사용하거나 웹 기반 구성 도구를 통해 대화형으로 생성할 수 있습니다.

CLI로 생성​

다음 명령을 사용하여 설정 파일을 대화형으로 생성합니다.

  • Semaphore 서버의 경우:

    semaphore setup
  • Semaphore runner의 경우:

    semaphore runner setup
    팁

    runner 설정에 대한 자세한 내용은 Runners 섹션을 참조하십시오.

웹사이트에서 생성​

또는 웹 기반 대화형 구성 도구를 사용할 수 있습니다.

설정 파일 예제​

Semaphore는 다음 내용을 가진 config.json 설정 파일을 사용합니다.

{
"mysql_test": {
"host": "127.0.0.1:3306",
"user": "root",
"pass": "***",
"name": "semaphore"
},

"dialect": "mysql",

"git_client": "go_git",
"git_attempts": 4,

"auth": {
"totp": {
"enabled": false,
"allow_recovery": true
}
},

"use_remote_runner": true,
"runner_registration_token": "73fs***",

"tmp_path": "/tmp/semaphore",
"cookie_hash": "96Nt***",
"cookie_encryption": "x0bs***",
"access_key_encryption": "j1ia***",

"max_tasks_per_template": 3,

"schedule": {
"timezone": "UTC"
},

"log": {
"events": {
"enabled": true,
"path": "./events.log"
}
},

"process": {
"chroot": "/opt/semaphore/sandbox"
}
}

설정 파일 사용​

  • Semaphore 서버의 경우:
semaphore server --config ./config.json
  • Semaphore runner의 경우:
semaphore runner start --config ./config.json

시크릿 디렉터리​

Semaphore는 시크릿 파일(예: 파일 기반 키 저장소 항목 또는 디스크에서 읽어오는 HashiCorp Vault 및 OpenBao 토큰)을 설정 가능한 디렉터리에서만 읽습니다.

옵션환경 변수설명
dirs.secretsSEMAPHORE_SECRETS_PATH시크릿 파일 디렉터리입니다. 기본값: /tmp/semaphore.
secrets_path (레거시)SEMAPHORE_SECRETS_PATH하위 호환성을 위해 유지되는 최상위 설정입니다. dirs.secrets가 설정되지 않았거나 기본 경로 그대로인 경우에만 사용됩니다.

우선순위: 기본값이 아닌 dirs.secrets가 레거시 secrets_path보다 우선합니다. SEMAPHORE_SECRETS_PATH를 설정하면 Semaphore는 두 필드 모두에 이를 적용합니다.

현재 레이아웃을 사용하는 예제:

{
"dirs": {
"secrets": "/var/lib/semaphore/secrets"
}
}

레거시 설치에서는 여전히 다음을 사용할 수 있습니다.

{
"secrets_path": "/var/lib/semaphore/secrets"
}

키 저장소 양식의 파일 탭에서 선택한 키 파일과 외부 시크릿 저장소에서 참조하는 토큰 파일은 이 디렉터리 안에 있어야 합니다. 디렉터리 밖의 경로는 file path must be inside secrets path 오류와 함께 거부됩니다. 환경 변수 및 파일에서 가져오는 키를 참조하십시오.

Git 작업​

Semaphore는 매 실행 전에 작업 리포지토리를 클론하고 업데이트합니다. 이 동작은 두 가지 옵션으로 제어합니다.

옵션환경 변수설명
git_clientSEMAPHORE_GIT_CLIENTGit 클라이언트 구현: cmd_git(기본값, 시스템 git 바이너리 사용) 또는 go_git(순수 Go 클라이언트).
git_attemptsSEMAPHORE_GIT_ATTEMPTS작업이 실패하기 전까지 클론 및 pull 작업을 시도하는 횟수입니다. 기본값: 4. 1로 설정하면 재시도 없이 한 번만 시도합니다.

클론 또는 pull이 실패하고 재시도 횟수가 남아 있으면 Semaphore는 지수 백오프(1초부터 시작하여 시도마다 두 배로 증가, 최대 60초)로 대기한 뒤 Git pull failed (...), retrying in 2s와 같은 메시지를 로그에 기록합니다. 재시도는 네트워크 작업에만 적용됩니다. 체크아웃 실패나 인증 오류는 모든 시도를 소진한 후에도 여전히 작업을 실패시킵니다.

git 서버를 간헐적으로 사용할 수 없는 경우 git_attempts를 늘리십시오. 실패가 즉각적이고 지속적인 경우(잘못된 자격 증명, 존재하지 않는 리포지토리)에는 근본 원인을 해결하십시오. 재시도는 도움이 되지 않습니다.