- インストール中にサブスクリプションを有効化
- インストール中にライセンスファイルを追加
- ライセンス使用データの提出
- ライセンスの有効期限が切れるとどうなりますか?
- ライセンスの削除
- ライセンスの詳細と履歴の表示
- Railsコンソールでのライセンスコマンド
- トラブルシューティング
GitLab EEをライセンスファイルまたはキーでアクティベートします。
GitLabからライセンスファイルを受け取った場合(試用版など)、インスタンスにアップロードするか、インストール中に追加することができます。ライセンスファイルはBase64エンコードされたASCIIテキストファイルで、拡張子は.gitlab-license
。
GitLabインスタンスに初めてサインインすると、Add licenseページへのリンクがあるメモが表示されるはずです。
そうでなければ、ライセンスを追加します:
- GitLabに管理者としてサインインします。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- Add License]エリアで、ファイルをアップロードするかキーを入力してライセンスを追加します。
- Terms of Service] チェックボックスを選択します。
- ライセンスの追加を選択します。
<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"
-
ライセンス使用データの提出
オフライン環境でライセンスファイルまたはキーを使用してインスタンスをアクティベートする場合、ライセンス使用量データを毎月提出する必要があります。データを提出するには、ライセンス使用量をエクスポートし、電子メールで更新サービス(renewals-service@customers.gitlab.com
)に送信します。
サブスクリプションの開始日以降、毎月データを送信しないと、サブスクリプションに関連付けられているアドレスに電子メールが送信され、データの送信を促すバナーが表示されます。バナーは、管理エリアの ダッシュボードと 購読ページに表示されます。バナーを解除できるのは、ライセンス使用量データを提出した翌月までです。
ライセンスの有効期限が切れるとどうなりますか?
ライセンスの有効期限が切れる15日前になると、GitLab管理者に有効期限の通知バナーが表示されます。
ライセンスの有効期限が切れると、GitLabはGitプッシュやイシュー作成のような機能をロックします。インスタンスは読み取り専用になり、すべての管理者に期限切れのメッセージが表示されます。これが発生するまでに14日間の猶予期間があります。
機能を再開するには、サブスクリプションを更新してください。
ライセンスの有効期限が30日以上経過している場合、機能を再開するには新しいサブスクリプションを購入する必要があります。
無料機能に戻るには、期限切れのライセンスをすべて削除してください。
ライセンスの削除
セルフマネージド・インスタンスからライセンスを削除するには、以下の手順に従います:
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- サブスクリプションを選択します。
- ライセンスの削除を選択します。
過去に適用したライセンスも含め、すべてのライセンスを削除するには、この手順を繰り返します。
ライセンスの詳細と履歴の表示
ライセンスの詳細を表示するには
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- サブスクリプションを選択します。
複数のライセンスを追加および表示できますが、現在の日付範囲の最新のライセンスのみがアクティビティ ライセンスとなります。
将来の日付のライセンスを追加すると、そのライセンスが適用される日付まで有効になりません。すべてのアクティブなサブスクリプションは、[Subscription history] テーブルで表示できます。
ライセンス使用情報を CSV ファイルにエクスポートすることもできます。
Railsコンソールでのライセンスコマンド
以下のコマンドはRailsコンソールで実行できます。
現在のライセンス情報を見る
# 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 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 インスタンス全体を再起動してください。