GitLab EE 인증 파일 또는 키로 활성화하기

GitLab에서 라이센스 파일을 받은 경우(예: 체험용), 이를 인스턴스에 업로드하거나 설치 중에 추가할 수 있습니다. 라이센스 파일은 .gitlab-license 확장자를 가진 base64 인코딩된 ASCII 텍스트 파일입니다.

GitLab 인스턴스에 처음 로그인하면 Add license 페이지로 연결되는 노트가 표시됩니다.

그렇지 않다면, 라이센스를 추가하려면:

  1. 관리자로 GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 하단에 있는 Admin을 선택합니다.
  3. Settings > General을 선택합니다.
  4. Add License 영역에서 파일을 업로드하거나 키를 입력하여 라이센스를 추가합니다.
  5. Terms of Service 체크박스를 선택합니다.
  6. Add license를 선택합니다.

설치 중 구독 활성화하기

설치 중에 구독을 활성화하려면, 활성화 코드를 사용하여 GITLAB_ACTIVATION_CODE 환경 변수를 설정합니다:

export GITLAB_ACTIVATION_CODE=your_activation_code

설치 중 라이센스 파일 추가하기

라이센스가 있는 경우, GitLab을 설치할 때 이를 가져올 수도 있습니다.

  • 셀프 컴파일 설치의 경우:
    • config/ 디렉토리에 Gitlab.gitlab-license 파일을 배치합니다.
    • 라이센스에 대한 사용자 지정 위치 및 파일 이름을 지정하려면, GITLAB_LICENSE_FILE 환경 변수를 사용하여 파일 경로를 설정합니다:

      export GITLAB_LICENSE_FILE="/path/to/license/file"
      
  • 리눅스 패키지 설치의 경우:
    • /etc/gitlab/ 디렉토리에 Gitlab.gitlab-license 파일을 배치합니다.
    • 라이센스에 대한 사용자 지정 위치 및 파일 이름을 지정하려면, gitlab.rb에 이 항목을 추가합니다:

      gitlab_rails['initial_license_file'] = "/path/to/license/file"
      
  • Helm Charts 설치의 경우, 기본 구성 키인 global.gitlab.license를 사용합니다.

경고: 이 방법들은 설치 시점에만 라이센스를 추가합니다. 라이센스를 갱신하거나 업그레이드하려면, 웹 사용자 인터페이스의 Admin area에서 라이센스를 추가하세요.

라이센스 사용 데이터 제출하기

오프라인 환경에서 인스턴스를 활성화하는 데 라이센스 파일이나 키를 사용하는 경우, 매월 라이센스 사용 데이터를 제출해야 합니다.

데이터를 제출하려면, 라이센스 사용 내보내기를 하고, 이를 갱신 서비스인 renewals-service@customers.gitlab.com에 이메일로 보내십시오. 제출하기 전에 반드시 라이센스 사용 파일을 열어보지 마세요. 그렇지 않으면 사용된 프로그램에 의해 파일의 내용이 조작될 수 있으며(예: 타임스탬프가 다른 형식으로 변환될 수 있음), 파일이 처리될 때 실패를 초래할 수 있습니다.

구독 시작 날짜 이후 매월 데이터를 제출하지 않으면, 구독과 관련된 이메일 주소로 이메일이 발송되고, 데이터를 제출하라는 배너가 표시됩니다. 배너는 DashboardSubscription 페이지의 Admin area에 표시됩니다. 라이센스 사용 데이터를 제출할 때까지 다음 달까지 이를 없앨 수 없습니다.

라이센스 만료 시 발생하는 일

라이센스 만료 15일 전에, 다가오는 만료 날짜가 GitLab 관리자에게 표시되는 알림 배너가 표시됩니다.

라이센스는 만료 날짜의 시작 시점, 즉 서버 시간 00:00에 만료됩니다.

라이센스가 만료되면 GitLab은 Git 푸시 및 문제 생성과 같은 기능을 잠급니다. 인스턴스는 읽기 전용 상태가 되며 모든 관리자에게 만료 메시지가 표시됩니다. 이 작업이 발생하기 전에 14일의 유예 기간이 주어집니다.

예를 들어, 라이센스 시작일이 2024년 1월 1일이고 종료일이 2025년 1월 1일인 경우:

  • 2024년 12월 31일 서버 시간 11:59:59에 만료됩니다.
  • 2025년 1월 1일 서버 시간 12:00:00부터 만료된 것으로 간주됩니다.
  • 2025년 1월 1일 서버 시간 12:00:00부터 2025년 1월 14일 서버 시간 11:59:59까지 14일의 유예 기간이 시작됩니다.
  • 2025년 1월 15일 서버 시간 12:00:00에 인스턴스가 읽기 전용 상태가 됩니다.

기능을 다시 사용하려면, 구독을 갱신하십시오.

라이센스가 만료된 지 30일이 넘으면, 기능을 다시 사용하기 위해 새로운 구독을 구매해야 합니다.

무료 기능으로 돌아가려면, 모든 만료된 라이센스를 삭제하세요.

라이센스 제거

셀프 관리 인스턴스에서 라이센스를 제거하려면:

  1. 왼쪽 사이드바의 하단에서 Admin을 선택합니다.
  2. Subscription을 선택합니다.
  3. Remove license을 선택합니다.

이 단계를 반복하여 과거에 적용된 라이센스를 포함하여 모든 라이센스를 제거합니다.

라이센스 세부정보 및 기록 보기

라이센스 세부정보를 보려면:

  1. 왼쪽 사이드바의 하단에서 Admin을 선택합니다.
  2. Subscription을 선택합니다.

하나 이상의 라이센스를 추가하고 볼 수 있지만, 현재 날짜 범위에서 활성 라이센스는 가장 최신 라이센스만 있습니다.

미래 날짜의 라이센스를 추가하면, 해당 날짜가 적용될 때까지 효력을 발휘하지 않습니다.
모든 활성 구독은 Subscription history 테이블에서 볼 수 있습니다.

또한 내보내기하여 라이센스 사용 정보를 CSV 파일로 내보낼 수 있습니다.

Rails 콘솔의 라이센스 명령

다음 명령은 Rails 콘솔에서 실행할 수 있습니다.

caution
데이터를 직접 변경하는 모든 명령은 올바르게 실행되지 않거나 올바른 조건에서 실행되지 않을 경우 손상을 초래할 수 있습니다.
테스트 환경에서 인스턴스의 백업이 복원될 준비가 되어 있는지 확인하고 실행하는 것이 좋습니다.

현재 라이센스 정보 보기

# 라이센스 정보 (이름, 회사, 이메일 주소)
License.current.licensee

# 플랜:
License.current.plan

# 업로드:
License.current.created_at

# 시작:
License.current.starts_at

# 만료일:
License.current.expires_at

# 이것은 시험 라이센스인가요?
License.current.trial?

# CustomersDot에서 찾기 위한 라이센스 ID
License.current.license_id

# Base64 인코딩된 ASCII 형식의 라이센스 데이터
License.current.data

# 게스트 사용자를 제외한 현재 청구 가능한 좌석 수를 확인합니다. 이는 게스트 좌석이 계산되지 않는 Ultimate 구독 티어를 사용하는 고객에게 유용합니다.
User.active.without_bots.excluding_guests_and_requests.count

미래에 시작하는 라이센스와의 상호작용

# 미래 라이센스 데이터는 현재 라이센스 데이터와 동일한 형식을 따르며, 라이센스 접두어에 대해 다른 수정자를 사용합니다.
License.future_dated

프로젝트 기능이 인스턴스에서 사용 가능한지 확인

features.rb에 나열된 기능입니다.

License.current.feature_available?(:jira_dev_panel_integration)

프로젝트에서 기능이 사용 가능한지 확인

features.rb에 나열된 기능입니다.

p = Project.find_by_full_path('<group>/<project>')
p.feature_available?(:jira_dev_panel_integration)

콘솔을 통한 라이센스 추가

key 변수를 사용하여

key = "<key>"
license = License.new(data: key)
license.save
License.current # 적용되었는지 확인

라이센스 파일을 사용하여

license_file = File.open("/tmp/Gitlab.license")

key = license_file.read.gsub("\r\n", "\n").gsub(/\n+$/, '') + "\n"

license = License.new(data: key)
license.save
License.current # 적용되었는지 확인

이 스니펫은 파일에 저장되고 Rails Runner를 사용하여 실행할 수 있어
라이센스가 셸 자동화 스크립트를 통해 적용될 수 있습니다.

이는 예를 들어 만료된 라이센스와 다수의 LDAP 서버와 관련된
알려진 경계 사례에서 필요합니다.

라이센스 제거

라이센스 기록 테이블을 정리하려면:

TYPE = :trial?
# 또는 :expired?

License.select(&TYPE).each(&:destroy!)

# 또는 License.all.each(&:destroy!)

문제 해결

관리 영역에 구독 영역이 없음

귀하의 라이센스를 추가할 수 없습니다. 왜냐하면 구독 영역이 없기 때문입니다.

이 문제는 다음의 경우에 발생할 수 있습니다:

  • GitLab Community Edition을 실행 중입니다. 라이센스를 추가하기 전에 Enterprise Edition으로 업그레이드해야 합니다.
  • GitLab.com을 사용 중입니다. GitLab.com에 자체 관리 라이센스를 추가할 수 없습니다. GitLab.com에서 유료 기능을 사용하려면 별도의 구독을 구매해야 합니다.

갱신 시 사용자 수가 라이센스 한도를 초과함

GitLab은 추가 사용자를 구매하라는 메시지를 표시합니다. 이 문제는 라이센스가 인스턴스의 사용자 수를 충족할 만큼 충분하지 않을 경우 발생합니다.

이 문제를 해결하려면 해당 사용자를 충족할 수 있는 추가 좌석을 구매하세요.
자세한 내용은 라이센스 FAQ를 참조하세요.

GitLab 14.2 이후 버전에서는 라이센스 파일을 사용하는 인스턴스에 다음 규칙이 적용됩니다:

  • 라이센스 초과 사용자가 라이센스 파일의 사용자 수의 10% 이하인 경우, 라이센스가 적용되며 다음 갱신 시 초과 요금을 지불하게 됩니다.
  • 라이센스 초과 사용자가 라이센스 파일의 사용자 수의 10%를 초과하는 경우, 추가 사용자를 구매하지 않으면 라이센스를 적용할 수 없습니다.

예를 들어, 100명의 사용자를 위한 라이센스를 구매하는 경우, 라이센스를 추가할 때 110명의 사용자가 있을 수 있습니다. 그러나 111명의 사용자가 있는 경우, 라이센스를 추가하기 전에 추가 사용자를 구매해야 합니다.

Start GitLab Ultimate trial 라이센스를 추가한 후에도 계속 표시됨

이 문제를 해결하려면 Puma 또는 전체 GitLab 인스턴스를 재시작하세요.