GitLab EEをライセンスファイルまたはキーでアクティベートします。

GitLabからライセンスファイルを受け取った場合(試用版など)、インスタンスにアップロードするか、インストール中に追加することができます。ライセンスファイルはBase64エンコードされたASCIIテキストファイルで、拡張子は.gitlab-license

GitLabインスタンスに初めてサインインすると、Add licenseページへのリンクがあるメモが表示されるはずです。

そうでなければ、ライセンスを追加します:

  1. GitLabに管理者としてサインインします。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. Add License]エリアで、ファイルをアップロードするかキーを入力してライセンスを追加します。
  6. Terms of Service] チェックボックスを選択します。
  7. ライセンスの追加を選択します。
note
GitLab 14.7.xから14.9.xでは、UIでライセンスファイルを追加することができます。GitLab 14.1.xから14.7では、すでにアクティベーションコードでサブスクリプションをアクティベートしている場合、管理エリアからAdd Licenseにアクセスすることはできません。直接URLからAdd Licenseにアクセスする必要があります、<YourGitLabURL>/admin/license/new

インストール中にサブスクリプションを有効化

GitLab 16.0 で導入されました

インストール中にサブスクリプションを有効にするには、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"
      
  • Linuxパッケージ・インストールの場合:
    • /etc/gitlab/ ディレクトリにGitlab.gitlab-license ファイルを置きます。
    • ライセンスの場所とファイル名をカスタムで指定するには、このエントリをgitlab.rb に追加します:

       gitlab_rails['initial_license_file'] = "/path/to/license/file"
      
caution
これらの方法は、インストール時にライセンスを追加するだけです。ライセンスを更新またはアップグレードするには、Web ユーザー インタフェースのAdmin Areaでライセンスを追加します。

ライセンス使用データの提出

オフライン環境でライセンスファイルまたはキーを使用してインスタンスをアクティベートする場合、ライセンス使用量データを毎月提出する必要があります。データを提出するには、ライセンス使用量をエクスポートし、電子メールで更新サービス(renewals-service@customers.gitlab.com )に送信します。

サブスクリプションの開始日以降、毎月データを送信しないと、サブスクリプションに関連付けられているアドレスに電子メールが送信され、データの送信を促すバナーが表示されます。バナーは、管理エリアの ダッシュボードと 購読ページに表示されます。バナーを解除できるのは、ライセンス使用量データを提出した翌月までです。

ライセンスの有効期限が切れるとどうなりますか?

ライセンスの有効期限が切れる15日前になると、GitLab管理者に有効期限の通知バナーが表示されます。

ライセンスの有効期限が切れると、GitLabはGitプッシュやイシュー作成のような機能をロックします。インスタンスは読み取り専用になり、すべての管理者に期限切れのメッセージが表示されます。これが発生するまでに14日間の猶予期間があります。

機能を再開するには、サブスクリプションを更新してください。

ライセンスの有効期限が30日以上経過している場合、機能を再開するには新しいサブスクリプションを購入する必要があります。

無料機能に戻るには、期限切れのライセンスをすべて削除してください。

ライセンスの削除

セルフマネージド・インスタンスからライセンスを削除するには、以下の手順に従います:

  1. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  2. Admin Areaを選択します。
  3. サブスクリプションを選択します。
  4. ライセンスの削除を選択します。

過去に適用したライセンスも含め、すべてのライセンスを削除するには、この手順を繰り返します。

ライセンスの詳細と履歴の表示

ライセンスの詳細を表示するには

  1. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  2. Admin Areaを選択します。
  3. サブスクリプションを選択します。

複数のライセンスを追加および表示できますが、現在の日付範囲の最新のライセンスのみがアクティビティ ライセンスとなります。

将来の日付のライセンスを追加すると、そのライセンスが適用される日付まで有効になりません。すべてのアクティブなサブスクリプションは、[Subscription history] テーブルで表示できます。

ライセンス使用情報を CSV ファイルにエクスポートすることもできます。

note
GitLab 13.6以前では、新しいライセンスを追加した際に、期限切れのライセンスに関するバナーが表示され続けることがあります。これは、新しいライセンスの開始日が未来で、期限切れのライセンスがまだアクティビティである場合に起こります。新しいライセンスがアクティブになるとバナーは消えます。

Railsコンソールでのライセンスコマンド

以下のコマンドはRailsコンソールで実行できます。

caution
データを直接変更するようなコマンドは、正しく実行しなかったり適切な条件下で実行しなかったりすると、損害を与える可能性があります。念のため、インスタンスのバックアップを復元できる状態にしてテスト環境で実行することを強くお勧めします。

現在のライセンス情報を見る

# License information (name, company, email address)
License.current.licensee

# Plan:
License.current.plan

# Uploaded:
License.current.created_at

# Started:
License.current.starts_at

# Expires at:
License.current.expires_at

# Is this a trial license?
License.current.trial?

# License ID for lookup on CustomersDot
License.current.license_id

# License data in Base64-encoded ASCII format
License.current.data

# Confirm the current billable seat count excluding guest users. This is useful for customers who use an Ultimate subscription tier where Guest seats are not counted.
User.active.without_bots.excluding_guests.count

将来開始するライセンスとの相互作用

# Future license data follows the same format as current license data it just uses a different modifier for the License prefix
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 # check to make sure it applied

ライセンスファイルの使用

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 # check to make sure it applied

これらのスニペットをファイルに保存し、Rails Runnerを使用して実行することで、シェルの自動化スクリプトからライセンスを適用できます。

これは、期限切れのライセンスと複数のLDAPサーバを持つ既知のエッジケースなどで必要です。

ライセンスの削除

ライセンス履歴テーブルを整理するには

TYPE = :trial?
# or :expired?

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

# or even License.all.each(&:destroy!)

トラブルシューティング

管理エリアにサブスクリプションエリアがありません

サブスクリプションエリアがないため、ライセンスを追加できません。このイシューは以下の場合に発生する可能性があります:

更新時にユーザーがライセンスの上限を超えています。

GitLabは追加ユーザーの購入を促すメッセージを表示します。このイシューは、インスタンスのユーザー数をカバーするのに十分なユーザー数を持たないライセンスを追加した場合に発生します。

このイシューを解決するには、それらのユーザーをカバーするために追加のシートを購入してください。詳細については、ライセンスに関するFAQをお読みください。

GitLab 14.2以降では、ライセンスファイルを使用するインスタンスには以下のルールが適用されます:

  • ライセンス超過ユーザーがライセンスファイルのユーザーの10%以下である場合、ライセンスが適用され、次回の更新時に超過分を支払います。
  • ライセンス超過ユーザーがライセンスファイル内のユーザーの10%以上の場合、ユーザーを追加購入しなければライセンスを適用することはできません。

例えば、100ユーザー分のライセンスを購入した場合、ライセンスを追加すると110ユーザーになります。ただし、ユーザーが111人の場合は、ライセンスを追加する前にさらにユーザーを購入する必要があります。

Start GitLab Ultimate trial ライセンス追加後の表示

このイシューを解決するには、Puma または GitLab インスタンス全体を再起動してください。