GitLab Enterprise Edition 활성화
GitLab에서 라이선스 파일(예: 평가판용)을 받은 경우 인스턴스에 업로드하거나 설치 중에 추가할 수 있습니다. GitLab 인스턴스에 처음 로그인할 때 Add license 페이지로 연결되는 링크가 포함된 알림이 표시될 것입니다.
GitLab에서 라이선스 파일(예: 평가판용)을 받은 경우 인스턴스에 업로드하거나 설치 중에 추가할 수 있습니다. 라이선스 파일은 .gitlab-license 확장자를 가진 Base64로 인코딩된 ASCII 텍스트 파일입니다.
GitLab 인스턴스에 처음 로그인할 때 Add license 페이지로 연결되는 링크가 포함된 알림이 표시될 것입니다.
그렇지 않은 경우 Admin 영역에서 라이선스를 추가합니다.
Admin 영역에서 라이선스 추가#
- GitLab에 관리자로 로그인합니다.
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Add License 영역에서 파일을 업로드하거나 키를 입력하여 라이선스를 추가합니다.
- Terms of Service 체크박스를 선택합니다.
- Add license를 선택합니다.
설치 중 구독 활성화#
히스토리
- GitLab 16.0에서 도입.
설치 중 구독을 활성화하려면 GITLAB_ACTIVATION_CODE 환경 변수에 활성화 코드를 설정합니다:
export GITLAB_ACTIVATION_CODE=your_activation_code
설치 중 라이선스 파일 추가#
라이선스가 있는 경우 GitLab 설치 시 가져올 수 있습니다.
-
직접 컴파일한 경우:
-
Gitlab.gitlab-license파일을config/디렉토리에 배치합니다. -
라이선스의 커스텀 위치와 파일명을 지정하려면 파일 경로와 함께
GITLAB_LICENSE_FILE환경 변수를 설정합니다:export GITLAB_LICENSE_FILE="/path/to/license/file"
-
-
Linux 패키지 (Omnibus):
-
Gitlab.gitlab-license파일을/etc/gitlab/디렉토리에 배치합니다. -
라이선스의 커스텀 위치와 파일명을 지정하려면
gitlab.rb에 다음 항목을 추가합니다:gitlab_rails['initial_license_file'] = "/path/to/license/file"
-
-
Helm 차트 (쿠버네티스):
global.gitlab.license구성 키를 사용합니다.
이 방법들은 설치 시점에만 라이선스를 추가합니다. 라이선스를 갱신하거나 업그레이드하려면 웹 사용자 인터페이스의 Admin 영역에서 라이선스를 추가하세요.
라이선스 사용 데이터 제출#
오프라인 환경에서 라이선스 파일이나 키를 사용하여 인스턴스를 활성화하는 경우 향후 구매 및 갱신을 간소화하기 위해 매월 라이선스 사용 데이터를 제출하는 것이 좋습니다. 데이터를 제출하려면 라이선스 사용을 내보내기하고 이메일로 갱신 서비스(renewals-service@customers.gitlab.com)에 전송하세요. 전송하기 전에 라이선스 사용 파일을 열면 안 됩니다. 그렇지 않으면 사용된 프로그램(예: 타임스탬프가 다른 형식으로 변환될 수 있음)에 의해 파일의 내용이 조작되어 파일을 처리할 때 오류가 발생할 수 있습니다.
구독 시작일 이후 매월 데이터를 제출하지 않으면 구독과 연결된 주소로 이메일이 전송되고 데이터를 제출하도록 상기시키는 배너가 표시됩니다. 배너는 Admin 영역의 Dashboard 및 Subscription 페이지에 표시되며 사용 파일이 다운로드된 후 해제할 수 있습니다. 라이선스 사용 데이터를 제출한 다음 달까지만 해제할 수 있습니다.
라이선스 만료 시 발생하는 일#
라이선스 만료 15일 전에 만료 예정일이 포함된 알림 배너가 GitLab 관리자에게 표시됩니다.
라이선스는 만료일 시작 시, 서버 시간 00:00에 만료됩니다.
라이선스가 만료되면 GitLab은 Git 푸시 및 이슈 생성과 같은 기능을 잠급니다. 인스턴스가 읽기 전용이 되고 모든 관리자에게 만료 메시지가 표시됩니다.
예를 들어 라이선스의 시작일이 2024년 1월 1일이고 종료일이 2025년 1월 1일인 경우:
- 2024년 12월 31일 서버 시간 오후 11:59:59에 만료됩니다.
- 2025년 1월 1일 서버 시간 오전 12:00:00부터 만료된 것으로 간주됩니다.
읽기 전용 상태를 해제하고 기능을 재개하려면 구독을 갱신하세요.
라이선스가 만료된 지 30일이 넘은 경우 기능을 재개하려면 새 구독을 구매해야 합니다.
Free 기능으로 돌아가려면 만료된 모든 라이선스를 삭제하세요.
라이선스 제거#
GitLab Self-Managed 인스턴스에서 라이선스를 제거하려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- Subscription을 선택합니다.
- Remove license를 선택합니다.
과거에 적용된 것을 포함하여 모든 라이선스를 제거하려면 이 단계를 반복합니다.
라이선스 세부 정보 및 기록 보기#
라이선스 세부 정보를 보려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- Subscription을 선택합니다.
라이선스를 두 개 이상 추가하고 볼 수 있지만 현재 날짜 범위의 최신 라이선스만 활성 라이선스입니다.
미래 날짜 라이선스를 추가하면 해당 날짜까지 적용되지 않습니다. Subscription history 테이블에서 모든 활성 구독을 볼 수 있습니다.
라이선스 사용 정보를 CSV 파일로 내보낼 수도 있습니다.
Rails 콘솔에서의 라이선스 명령#
다음 명령은 Rails 콘솔에서 실행할 수 있습니다.
데이터를 직접 변경하는 명령은 올바르게 실행되지 않거나 적절한 조건에서 실행되지 않으면 손상을 줄 수 있습니다. 테스트 환경에서 인스턴스의 백업을 준비한 상태로 실행하는 것을 강력히 권장합니다.
현재 라이선스 정보 보기#
# 라이선스 정보 (이름, 회사, 이메일 주소)
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 접두사에 다른 수정자를 사용합니다
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!)
문제 해결#
Admin 영역에 Subscription 영역이 없음#
라이선스를 추가할 수 없는 이유는 Subscription 영역이 없기 때문입니다. 이 문제는 다음과 같은 경우에 발생할 수 있습니다:
- GitLab Community Edition을 실행 중입니다. 라이선스를 추가하기 전에 Enterprise Edition으로 업그레이드해야 합니다.
- GitLab.com을 사용 중입니다. GitLab.com에는 GitLab Self-Managed 라이선스를 추가할 수 없습니다. GitLab.com에서 유료 기능을 사용하려면 별도의 구독을 구매하세요.
갱신 시 사용자가 라이선스 한도를 초과함#
GitLab이 추가 사용자를 구매하라는 메시지를 표시합니다. 이 문제는 인스턴스의 사용자 수를 커버하기에 충분한 사용자가 없는 라이선스를 추가하면 발생합니다.
이 문제를 해결하려면 해당 사용자를 커버할 추가 시트를 구매하세요. 자세한 내용은 라이선싱 FAQ를 참조하세요.
GitLab 14.2 이상에서 라이선스 파일을 사용하는 인스턴스의 경우 다음 규칙이 적용됩니다:
- 라이선스 초과 사용자가 라이선스 파일의 사용자의 10% 이하인 경우 라이선스가 적용되고 다음 갱신 시 초과분을 지불합니다.
- 라이선스 초과 사용자가 라이선스 파일의 사용자의 10% 이상인 경우 더 많은 사용자를 구매하지 않고는 라이선스를 적용할 수 없습니다.
예를 들어 사용자 100명 라이선스를 구매하면 라이선스를 추가할 때 110명의 사용자를 가질 수 있습니다. 그러나 111명의 사용자가 있으면 라이선스를 추가하기 전에 더 많은 사용자를 구매해야 합니다.
라이선스 추가 후에도 Start GitLab Ultimate trial이 계속 표시됨#
이 문제를 해결하려면 Puma 또는 전체 GitLab 인스턴스를 재시작하세요.
