Continuous Integration 및 배포 관리자 영역 설정

Tier: Free, Premium, Ultimate Offering: Self-Managed

관리자 영역에는 Auto DevOps, 러너, 작업 아티팩트의 인스턴스 설정이 포함되어 있습니다.

Auto DevOps

모든 프로젝트에 대해 Auto DevOps를 활성화(또는 비활성화)하려면:

  1. 왼쪽 사이드바에서 맨 아래에서 관리자 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 모든 프로젝트에 대한 기본 Auto DevOps 파이프라인으로 설정란의 확인란(비활성화하려면 확인 해제)을 선택합니다.
  4. 옵션으로, Auto Deploy 및 Auto Review Apps에 사용되는 Auto DevOps 기본 도메인을 설정합니다.
  5. 변경 사항을 적용하려면 변경 사항 저장을 선택합니다.

이후 .gitlab-ci.yml이 없는 모든 기존 및 새로 생성된 프로젝트에서는 Auto DevOps 파이프라인을 사용합니다.

특정 프로젝트에서 비활성화하려면 해당 설정에서 비활성화할 수 있습니다.

새 프로젝트에 대한 인스턴스 러너 활성화

기본적으로 모든 새 프로젝트에 대해 인스턴스 러너를 사용할 수 있도록 설정할 수 있습니다.

  1. 왼쪽 사이드바에서 맨 아래에서 관리자 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. Continuous Integration 및 Deployment를 확장합니다.
  4. 새 프로젝트에 대한 인스턴스 러너 활성화 확인란을 선택합니다.

새 프로젝트가 생성될 때마다 인스턴스 러너를 사용할 수 있습니다.

인스턴스 러너 컴퓨팅 할당량

관리자는 전역 또는 네임 스페이스별로 컴퓨팅 시간 제한을 설정할 수 있습니다.

하나의 프로젝트에 대한 다른 프로젝트에 대한 프로젝트 러너 활성화

이미 프로젝트 러너를 등록한 경우 해당 러너를 다른 프로젝트에 할당할 수 있습니다.

하나의 프로젝트에 대해 프로젝트 러너를 여러 프로젝트에 활성화하려면:

  1. 왼쪽 사이드바에서 맨 아래에서 관리자 영역을 선택합니다.
  2. 왼쪽 사이드바에서 CI/CD > 러너를 선택합니다.
  3. 편집하려는 러너를 선택합니다.
  4. 우측 상단에서 편집({pencil})을 선택합니다.
  5. 이 러너에 대한 프로젝트 제한에서 프로젝트를 검색합니다.
  6. 프로젝트 왼쪽에 활성화를 선택합니다.
  7. 추가 프로젝트마다 해당 프로세스를 반복합니다.

인스턴스 러너에 대한 메시지 추가

모든 프로젝트의 러너 설정에 대해 인스턴스 러너에 대한 세부 정보를 표시하려면:

  1. 왼쪽 사이드바에서 맨 아래에서 관리자 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. Continuous Integration 및 배포를 확장합니다.
  4. 인스턴스 러너 세부 정보 필드에 Markdown을 포함하여 텍스트를 입력합니다.

렌더링된 세부 정보를 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트 또는 그룹을 찾습니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 러너를 확장합니다.

인스턴스 러너 세부 정보 예시

최대 아티팩트 크기

관리자는 작업 아티팩트의 최대 크기를 다음 위치에서 설정할 수 있습니다:

  • 인스턴스 수준
  • 프로젝트 및 그룹 수준

GitLab.com에서의 설정에 대해서는 아티팩트 최대 크기를 참조하십시오.

값은 MB 단위이며, 기본값은 작업 당 100MB입니다. 관리자는 기본값을 변경할 수 있습니다:

  • 인스턴스 수준:

    1. 왼쪽 사이드바에서 맨 아래에서 관리자 영역을 선택합니다.
    2. 왼쪽 사이드바에서 설정 > CI/CD > Continuous Integration 및 배포를 선택합니다.
    3. 최대 아티팩트 크기(MB)의 값을 변경합니다.
    4. 변경 사항이 적용되도록 변경 사항 저장을 선택합니다.
  • 그룹 수준 (이 설정은 인스턴스 설정을 재정의함):

    1. 그룹의 설정 > CI/CD > 일반 파이프라인으로 이동합니다.
    2. 최대 아티팩트 크기의 값을(단위: MB) 변경합니다.
    3. 변경 사항이 적용되도록 변경 사항 저장을 선택합니다.
  • 프로젝트 수준 (이 설정은 인스턴스 및 그룹 설정을 재정의함):

    1. 프로젝트의 설정 > CI/CD > 일반 파이프라인으로 이동합니다.
    2. 최대 아티팩트 크기의 값을(단위: MB) 변경합니다.
    3. 변경 사항이 적용되도록 변경 사항 저장을 선택합니다.

기본 아티팩트 만료

작업 아티팩트의 기본 만료 시간을 GitLab 인스턴스의 관리자 영역에서 설정할 수 있습니다. 기간의 구문은 artifacts:expire_in에 설명되어 있으며, 기본값은 30 일입니다.

  1. 왼쪽 사이드바에서 맨 아래에서 관리자 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 기본 만료 시간의 값을 변경합니다.
  4. 변경 사항이 적용되도록 변경 사항 저장을 선택합니다.

이 설정은 작업별로 설정되며 .gitlab-ci.yml에서 재정의할 수 있습니다. 만료를 비활성화하려면 0으로 설정하십시오. 기본 단위는 초입니다.

참고: 이 설정의 변경 사항은 새로운 아티팩트에만 적용됩니다. 이전에 만들어진 아티팩트에 대한 만료 시간은 업데이트되지 않습니다. 관리자는 직접 문제 해결 문서에 설명된대로 이전에 생성된 아티팩트를 수동으로 찾아 만료시킬 필요가 있습니다.

최근 성공한 파이프라인의 모든 작업에 대한 최신 artifacts 유지

기본 설정인 경우, 각 Git ref(브랜치 및 태그)에 대한 가장 최근의 파이프라인의 artifacts은 삭제로부터 잠겨 유지되며 만료 시간과 상관없이 보존됩니다.

비활성화된 경우, 새로운 성공 또는 수정된 파이프라인의 최신 artifacts은 만료될 수 있습니다.

이 설정은 프로젝트 레벨 설정을 우선합니다. 인스턴스 레벨에서 비활성화된 경우, 프로젝트 단위로 이를 활성화할 수 없습니다.

이 설정을 비활성화하려면:

  1. 왼쪽 사이드바에서 가장 아래쪽에서 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. Continuous Integration and Deployment를 확장합니다.
  4. 최신 성공 파이프라인의 모든 작업에 대한 최신 artifacts 유지 확인란을 해제합니다.
  5. 변경 사항 저장을 선택합니다.

이 기능을 비활성화하면, 최신 artifacts은 즉시 만료되지 않습니다. 최신 artifacts가 만료되고 삭제되려면 새로운 파이프라인이 실행되어야 합니다.

참고: 모든 응용 프로그램 설정에는 설정의 영향을 지연시킬 수 있는 커스터마이즈 가능한 캐시 만료 간격이 있습니다.

작업 아카이브

개별적으로 다시 실행되는 것을 방지하기 위해 오래된 작업을 아카이브할 수 있습니다. 아카이브된 작업에는 잠금 아이콘이()와 작업 로그 상단에 This job is archived가 표시됩니다.

아카이브된 작업에 대한 데이터베이스에 저장된 메타데이터를 제거하여 시스템에서 CI/CD 플로우의 흔적을 줄이기 위한 미래 작업이 계획되어 있습니다. 자세한 내용은 CI/CD data time decay 청사진을 참조하세요.

작업이 오래되고 만료로 간주되는 기간을 설정하려면:

  1. 왼쪽 사이드바에서 가장 아래쪽에서 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. Continuous Integration and Deployment 섹션을 확장합니다.
  4. 작업 아카이브 값을 설정합니다.
  5. 변경 내용이 적용되도록 변경 사항 저장을 선택합니다.

일정한 시간이 경과한 후, 작업은 백그라운드에서 아카이빙되어 더 이상 다시 시도할 수 없게 됩니다. 작업을 절대 만료되지 않게하려면 비워둬야 합니다. 하루 이상이어야하며 예를들어, 15일, 1개월, 2년 등이어야합니다.

GitLab.com에 대한 값 설정에 대한 자세한 내용은 Scheduled job archiving을 참조하세요.

CI/CD 변수 기본적으로 보호

모든 새로운 CI/CD 변수를 기본적으로 보호로 설정하려면:

  1. 왼쪽 사이드바에서 가장 아래쪽에서 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. CI/CD 변수 기본적으로 보호를 선택합니다.

최대 포함

파이프라인 당 포함에 대한 최대 수를 인스턴스 레벨에서 설정할 수 있습니다. 기본값은 150입니다.

  1. 왼쪽 사이드바에서 가장 아래쪽에서 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 최대 포함의 값을 변경합니다.
  4. 변경 내용이 적용되도록 변경 사항 저장을 선택합니다.

최대 하향 파이프라인 트리거 속도

프로젝트, 사용자 및 커밋 당 분당으로 트리거될 수 있는 하향 파이프라인의 최대 수는 인스턴스 레벨에서 설정할 수 있습니다. 기본값은 0 (제한 없음)입니다.

  1. 왼쪽 사이드바에서 가장 아래쪽에서 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 최대 하향 파이프라인 트리거 속도의 값을 변경합니다.
  4. 변경 내용이 적용되도록 변경 사항 저장을 선택합니다.

기본 CI/CD 구성 파일

새로운 프로젝트에 대한 기본 CI/CD 구성 파일 및 경로를 GitLab 인스턴스의 관리 영역에서 설정할 수 있습니다 (설정되지 않은 경우 .gitlab-ci.yml):

  1. 왼쪽 사이드바에서 가장 아래쪽에서 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 기본 CI/CD 구성 파일 필드에 새 파일 및 경로를 입력합니다.
  4. 변경 내용이 적용되도록 변경 사항 저장을 선택합니다.

특정 프로젝트에 대해 사용자 정의 CI/CD 구성 파일을 지정하는 것도 가능합니다.

CI/CD 한도 설정

  • GitLab 14.10에서 처음 소개되었습니다.
  • 프로젝트 당 활성화된 파이프라인의 최대 수 설정이 GitLab 16.0에서 제거되었습니다.

관리 영역에서 CI/CD 한도를 구성할 수 있습니다.

  1. 좌측 사이드바에서 아래쪽에서 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 지속적 통합 및 배포 섹션을 확장합니다.
  4. CI/CD 한도 섹션에서 다음 한도를 설정할 수 있습니다:
    • 단일 파이프라인의 작업 최대 수
    • 현재 활성화된 파이프라인의 총 작업 수
    • 프로젝트로부터 및 프로젝트로의 최대 파이프라인 구독 수
    • 최대 파이프라인 스케쥴 수
    • 작업이 가질 수 있는 최대 DAG 종속성 수
    • 그룹 당 등록된 러너의 최대 수
    • 프로젝트 당 등록된 러너의 최대 수
    • 파이프라인의 계층 구조 트리에서 하류 파이프라인의 최대 수

파이프라인 제안 배너의 활성화 또는 비활성화

기본적으로 파이프라인이 없는 병합 요청에는 하나를 추가하는 방법에 대한 안내가 제공되는 배너가 표시됩니다.

파이프라인 제안 배너

배너를 활성화 또는 비활성화하려면:

  1. 좌측 사이드바에서 아래쪽에서 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 파이프라인 제안 배너 활성화 확인란을 선택하거나 선택 해제합니다.
  4. 변경 사항 저장을 선택합니다.

작업 아티팩트를 위한 외부 리디렉션 페이지의 활성화 또는 비활성화

기본적으로 GitLab Pages는 사용자가 GitLab Pages에서 제공하는 작업 아티팩트를 보려고 시도할 때 외부 리디렉션 페이지를 표시합니다. 이 페이지는 이슈 352611에 설명된 대로 악의적으로 생성된 콘텐츠의 가능성에 대해 경고합니다.

Self-managed 관리자는 외부 리디렉션 경고 페이지를 비활성화할 수 있어서 작업 아티팩트 페이지를 직접 볼 수 있습니다.

  1. 좌측 사이드바에서 아래쪽에서 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 지속적 통합 및 배포를 확장합니다.
  4. 패키지 레지스트리 섹션에서 패키지 아티팩트를 GitLab 패키지 레지스트리에서 찾을 수 없다면 Maven 패키지 요청을 Maven 레지스트리로 전달 확인란을 선택 취소합니다.
  5. 변경 사항 저장을 선택합니다.

필수 파이프라인 구성

Tier: Ultimate Offering: Self-managed
  • GitLab 15.0에서 GitLab Premium에서 GitLab Ultimate로 이동되었습니다.
  • GitLab 15.9에서 폐기 예정되었습니다.

경고: 이 기능은 GitLab 15.9에서 폐기되었으며 17.0에서 제거 예정입니다. 이제 컴플라이언스 파이프라인을 사용하세요. 이 변경 사항은 대규모 변경입니다.

모든 프로젝트에 대한 필수 파이프라인 구성으로 CI/CD 템플릿을 설정할 수 있습니다. 다음에서 템플릿을 사용할 수 있습니다:

프로젝트 CI/CD 구성은 파이프라인 실행 시 필수 파이프라인 구성에 병합됩니다. 병합된 구성은 필수 파이프라인 구성이 프로젝트 구성을 include 키워드로 추가한 것과 동일합니다. 프로젝트의 전체 병합된 구성을 보려면 파이프라인 편집기에서 전체 구성 보기를 선택하세요.

필수 파이프라인 구성으로 CI/CD 템플릿을 선택하려면:

  1. 좌측 사이드바에서 아래쪽에서 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 필수 파이프라인 구성 섹션을 확장합니다.
  4. 드롭다운 목록에서 CI/CD 템플릿을 선택합니다.
  5. 변경 사항 저장을 선택합니다.

패키지 레지스트리 구성

Maven 전달

Tier: Premium, Ultimate Offering: Self-managed

GitLab 관리자는 Maven 요청을 Maven Central로 전송하는 것을 비활성화할 수 있습니다.

Maven 요청 전송을 비활성화하려면:

  1. 좌측 사이드바에서 아래쪽에서 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 패키지 레지스트리 섹션을 확장합니다.
  4. GitLab 패키지 레지스트리에서 패키지를 찾을 수 없는 경우 Maven 패키지 요청을 Maven 레지스트리로 전달 확인란을 선택 취소합니다.
  5. 변경 사항 저장을 선택합니다.

npm 전달

Tier: Premium, Ultimate Offering: Self-Managed

GitLab 관리자는 npm 요청을 npmjs.com으로 전달하는 것을 비활성화할 수 있습니다.

비활성화하려면:

  1. 왼쪽 사이드바에서 아래쪽에 있는 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 패키지 레지스트리 섹션을 펼칩니다.
  4. GitLab 패키지 레지스트리에서 패키지를 찾을 수 없는 경우 npm 패키지 요청을 npm 레지스트리로 전달란의 확인란을 해제합니다.
  5. 변경 사항 저장을 선택합니다.

PyPI 전달

Tier: Premium, Ultimate Offering: Self-Managed

GitLab 관리자는 PyPI 요청을 pypi.org로 전달하는 것을 비활성화할 수 있습니다.

비활성화하려면:

  1. 왼쪽 사이드바에서 아래쪽에 있는 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 패키지 레지스트리 섹션을 펼칩니다.
  4. GitLab 패키지 레지스트리에서 패키지를 찾을 수 없는 경우 PyPI 패키지 요청을 PyPI 레지스트리로 전달란의 확인란을 해제합니다.
  5. 변경 사항 저장을 선택합니다.

패키지 파일 크기 제한

GitLab 관리자는 각 패키지 유형의 최대 허용 파일 크기를 조정할 수 있습니다.

최대 파일 크기를 설정하려면:

  1. 왼쪽 사이드바에서 아래쪽에 있는 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 패키지 레지스트리 섹션을 펼칩니다.
  4. 조정하려는 패키지 유형을 찾습니다.
  5. 바이트로 최대 파일 크기를 입력합니다.
  6. 크기 제한 저장을 선택합니다.

인스턴스의 모든 사용자에 의한 러너 등록 제한

GitLab 관리자는 UI의 일부 영역을 표시하고 숨겨서 러너를 등록할 수 있는 사용자를 조정할 수 있습니다.

UI에서 등록 섹션이 숨겨지면 프로젝트 또는 그룹의 구성원은 그룹 또는 프로젝트에서 러너 등록을 활성화하기 위해 관리자에게 연락해야 합니다. 등록을 방지할 계획이라면 사용자가 실행 작업을 실행해야 하는 러너에 액세스할 수 있도록 확인하세요.

기본적으로 프로젝트 및 그룹의 모든 구성원은 러너를 등록할 수 있습니다.

모든 사용자를 인스턴스에서 러너 등록하지 못하도록 제한하려면:

  1. 왼쪽 사이드바에서 아래쪽에 있는 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 러너를 확장합니다.
  4. 러너 등록 섹션에서 프로젝트 구성원이 러너를 등록할 수 있음그룹 구성원이 러너를 등록할 수 있음 확인란을 해제하여 UI에서 러너 등록을 제거합니다.
  5. 변경 사항 저장을 선택합니다.

참고: 프로젝트의 구성원이 러너 등록을 비활성화하면 등록 토큰이 자동으로 회전합니다. 토큰은 더 이상 유효하지 않으며 프로젝트에 대한 새 등록 토큰을 사용해야 합니다.

그룹의 모든 구성원에 의한 러너 등록 제한

필수 조건:

GitLab 관리자는 그룹 구성원에 의한 러너 등록을 제한하기 위해 그룹 권한을 조정할 수 있습니다.

특정 그룹의 구성원에 의한 러너 등록을 제한하려면:

  1. 왼쪽 사이드바에서 아래쪽에 있는 관리 영역을 선택합니다.
  2. 개요 > 그룹을 선택하고 그룹을 찾습니다.
  3. 편집을 선택합니다.
  4. 그룹의 모든 구성원에 의한 러너 등록을 비활성화하려면 새 그룹 러너 등록 가능 확인란을 해제합니다. 설정이 읽기 전용인 경우에는 인스턴스에서 러너 등록을 활성화해야 합니다.
  5. 변경 사항 저장을 선택합니다.

러너 버전 관리 비활성화

기본적으로 GitLab 인스턴스는 GitLab.com에서 공식 러너 버전 데이터를 정기적으로 가져와서 러너가 업그레이드가 필요한지를 결정합니다.

인스턴스에서 이 데이터를 가져오지 않도록 하려면:

  1. 왼쪽 사이드바에서 아래쪽에 있는 관리 영역을 선택합니다.
  2. 설정 > CI/CD를 선택합니다.
  3. 러너를 확장합니다.
  4. 러너 버전 관리 섹션에서 GitLab.com에서 GitLab 러너 릴리스 버전 데이터 가져오기 확인란을 해제합니다.
  5. 변경 사항 저장을 선택합니다.

문제 해결

413 Request Entity Too Large 오류

아티팩트가 너무 큰 경우 작업이 다음 오류와 함께 실패할 수 있습니다:

coordinator에게 "아카이브"로 아티팩트를 업로드 중... too large archive <job-id> responseStatus=413 Request Entity Too Large status=413" at end of a build job on pipeline when trying to store artifacts to <object-storage>.

다음을 수행해야 할 수 있습니다:

  • 최대 아티팩트 크기를 증가시킵니다.
  • 프록시 서버로 NGINX를 사용하는 경우 기본적으로 1MB로 제한된 파일 업로드 크기 제한을 증가시킵니다. NGINX 구성 파일에서 client-max-body-size에 더 높은 값 설정합니다.