markdown

라이선스 파일 또는 키로 GitLab EE 활성화하기

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

GitLab 인스턴스에 처음으로 로그인하면 라이선스 추가 페이지로 연결하는 링크가 표시됩니다.

그렇지 않은 경우, 라이선스를 추가하려면:

  1. 관리자로서 GitLab에 로그인합니다.
  2. 왼쪽 사이드바에서 하단에 있는 관리 영역을 선택합니다.
  3. 설정 > 일반을 선택합니다.
  4. 라이선스 추가 영역에서 파일을 업로드하거나 키를 입력하여 라이선스를 추가합니다.
  5. 서비스 약관 확인란을 선택합니다.
  6. 라이선스 추가를 선택합니다.
note
GitLab 14.7.x ~ 14.9.x에서는 UI를 사용하여 라이선스 파일을 추가할 수 있습니다. GitLab 14.1.x ~ 14.7에서 활성화 코드로 구독을 이미 활성화한 경우, 관리 영역에서 라이선스 추가에 접근할 수 없습니다. 대신 URL인 <YourGitLabURL>/admin/license/new에서 라이선스 추가에 직접 액세스해야 합니다.

설치 중에 구독 활성화하기

설치 중에 구독을 활성화하려면 활성화 코드로 GITLAB_ACTIVATION_CODE 환경 변수를 설정하십시오:

export GITLAB_ACTIVATION_CODE=활성화_코드

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

라이선스가 있다면 GitLab 설치 시에 가져올 수 있습니다.

  • 직접 컴파일한 경우:
    • Gitlab.gitlab-license 파일을 config/ 디렉터리에 넣습니다.
    • 라이선스의 사용자 정의 위치와 파일 이름을 지정하려면 GITLAB_LICENSE_FILE 환경 변수를 파일 경로로 설정합니다:

      export GITLAB_LICENSE_FILE="라이선스/파일/경로"
      
  • 리눅스 패키지를 설치한 경우:
    • Gitlab.gitlab-license 파일을 /etc/gitlab/ 디렉터리에 넣습니다.
    • 라이선스의 사용자 정의 위치와 파일 이름을 gitlab.rb에 다음 항목을 추가합니다:

      gitlab_rails['initial_license_file'] = "라이선스/파일/경로"
      
caution
이러한 방법은 설치 시에만 라이선스를 추가합니다. 라이선스를 갱신하거나 업그레이드하려면 웹 사용자 인터페이스의 관리 영역에 라이선스를 추가해야 합니다.

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

오프라인 환경에서 인스턴스를 활성화하기 위해 라이선스 파일이나 키를 사용하는 경우, 매월 라이선스 사용 데이터를 제출해야 합니다. 데이터를 제출하려면 라이선스 사용량을 내보냅니다 그리고 이메일을 통해 renewals-service@customers.gitlab.com로 보냅니다. 제출 전에 라이선스 사용 파일을 열면 안 됩니다. 그렇지 않으면 파일의 내용이 사용된 프로그램에 의해 조작될 수 있고(예: 타임스탬프가 다른 형식으로 변환될 수 있음) 파일 처리 중 문제가 발생할 수 있습니다.

구독 시작 날짜 이후 월별로 데이터를 제출하지 않으면 구독과 관련된 이메일이 해당 주소로 전송되고, 관리 영역대시보드구독 페이지에 데이터 제출을 알리는 배너가 표시됩니다. 데이터 제출 이후에 다음 달까지만 배너를 닫을 수 있습니다.

라이선스 만료 시 발생하는 상황

라이선스 만료 15일 전에 라이선스 만료일과 관련된 알림 배너가 GitLab 관리자에게 표시됩니다.

라이선스가 만료되면 GitLab 푸시와 이슈 생성과 같은 기능이 제한됩니다. 인스턴스는 읽기 전용이 되고, 모든 관리자에게 만료 메시지가 표시됩니다. 이로 인한 14일의 유예 기간이 있습니다.

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

라이선스가 30일 이상 만료된 경우, 기능을 다시 사용하려면 새 구독을 구매해야 합니다.

무료 기능으로 돌아가려면 만료된 모든 라이선스를 삭제하십시오.

라이선스 삭제하기

Self-managed 인스턴스에서 라이선스를 삭제하려면:

  1. 왼쪽 사이드바에서 하단에 있는 관리 영역을 선택합니다.
  2. 구독을 선택합니다.
  3. 라이선스 삭제를 선택합니다.

과거에 적용된 라이선스를 포함하여 모든 라이선스를 제거하려면 이러한 단계를 반복하십시오.

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

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

  1. 왼쪽 사이드바에서 하단에 있는 관리 영역을 선택합니다.
  2. 구독을 선택합니다.

여러 라이선스를 추가하고 볼 수 있지만, 현재 날짜 범위에서 가장 최근의 라이선스만이 활성 라이선스입니다.

미래 날짜로 지정된 라이선스를 추가하면 해당 날짜까지는 효과가 없습니다. 구독 이력 테이블에서 모든 활성 구독을 볼 수 있습니다.

note
GitLab 13.6 이하에서는 새 라이선스가 활성화되었음에도 만료 예정 배너가 계속 표시될 수 있습니다. 이는 새 라이선스의 시작 날짜가 미래에 있고 만료 예정일 기간 내에 기존 라이선스가 아직 활성화되어 있는 경우 발생합니다. 새 라이선스가 활성화되면 배너가 사라집니다.

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.count

#### 미래에 시작되는 라이선스와의 상호 작용

```ruby
# 미래에 시작되는 라이선스 데이터는 현재 라이선스 데이터와 동일한 형식을 따르지만 라이선스 접두사에 대해 다른 수정자를 사용합니다
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을 사용 중입니다. Self-managed 라이선스를 GitLab.com에 추가할 수 없습니다. GitLab.com에서 유료 기능을 사용하려면 별도 구독을 구매해야 합니다.

갱신 시 사용자가 라이선스 제한을 초과함

GitLab에서는 더 많은 사용자를 구매하도록 요구하는 메시지가 표시됩니다. 이 문제는 라이선스에 충분한 사용자가 포함되어 있지 않을 때 발생합니다.

이 문제를 해결하려면 해당 사용자들을 포함할 수 있는 추가 seats를 구매하십시오. 자세한 내용은 라이선싱 FAQ를 참조하십시오.

GitLab 14.2 이상의 인스턴스에서 라이선스 파일을 사용하는 경우 다음 규칙이 적용됩니다:

  • 라이선스를 초과하는 사용자가 라이선스 파일의 사용자 수보다 적거나 같으면 라이선스가 적용되고, 초과 요금은 다음 갱신 시 지불됩니다.
  • 라이선스를 초과하는 사용자가 라이선스 파일의 사용자 수보다 많으면, 추가 사용자를 구매하지 않으면 라이선스를 적용할 수 없습니다.

예를 들어, 100명의 사용자를 위한 라이선스를 구입하면 라이선스를 추가할 때 110명의 사용자가 가능합니다. 그러나 111명의 사용자가 있으면 라이선스를 추가하기 전에 더 많은 사용자를 구매해야 합니다.

GitLab Ultimate 평가판 시작이 라이선스 추가 후에도 여전히 표시됨

이 문제를 해결하려면 Puma 또는 전체 GitLab 인스턴스를 다시 시작하십시오.