Unity Licensing Server の管理

Unity Licensing Server が稼動した後、実行する必要がある一般的な管理タスクを以下に示します。

サーバーの状態のチェック

Licensing Server v2.0 以降では、Licensing Server Dashboard を使用してサーバーの状態をチェックできます。これを行うには、admin としてダッシュボードにログインし、Overview ページの Server health report (サーバーの健全性レポート) カードを確認します。また、Download JSON を選択して、レポートをファイルとして表示することもできます。

すべてのバージョンの Licensing Server で、CLI を使用してサーバーの状態をチェックできます。CLI を使用して状態をチェックするには、status コマンドを実行します。このコマンドを実行すると、以下の健全性チェックの結果が表示されます。

健全性チェック説明
HttpConfigHealthCheckKestrel の設定
ServerLicenseHealthCheckライセンスと委任の状態
LicensingHealthCheckライセンス設定と署名キー
DatabaseHealthCheckデータベースへの接続の状態
PluginInformationProviderサーバープラグイン

これらの健全性チェックの状態は、詳細なテストレポート でも確認できます。

status コマンドを以下の構文で実行します。

  • Linux: ./Unity.Licensing.Server status
  • Windows: .\Unity.Licensing.Server.exe status

出力は以下のようになります。

Server Version: 2.0.0+e81737f
Healthy
HttpConfig: Healthy
HTTP config is healthy
  [OK] Kestrel: Found config section Kestrel
  [OK] Kestrel:Endpoints:HTTP:Url: Found valid config Kestrel:Endpoints:HTTP:Url: http://10.192.192.255:80
ServerLicense: Healthy
Server license and delegation are valid
  [OK] ServerLicense::Context::FirstPhysicalAddress: 48:2a:e3:87:3b:19
  [OK] ServerLicense::Context::Platform: Win32NT
  [OK] ServerLicense::Context::ProcessorCount: 12
  [OK] ServerLicense::Context::MachineName: LAPTOP-2Q28U8QB
  [OK] ServerLicense::ContextCount: Found 4 out of 4 context values
  [OK] ServerLicense::EntitlementGroup::test-licenseServer_3573567292644_1: ... has valid server entitlements
  [OK] ServerLicense::EntitlementGroupCount: Found 1 valid server license(s)
  [OK] ServerLicense::Delegation::test-licenseServer-delegation-20200925_145658.xml: Found valid server delegation: <absolute_path>
  [OK] ServerLicense::DelegationsCount: Found 1 valid server delegations
LicensingConfig: Healthy
Licensing configuration is healthy
  [OK] licensing:licenseSigningCertLoading: Successfully loaded license signing key
  [OK] SyntaxValidation: Configuration syntax is valid
  [WARNING] licensing:defaultToolset: The defaultToolset configuration is invalid or not set. Valid toolsets are: ...
  [OK] licensing: Found config section licensing
  [OK] LicenseAclConfigValidation: License access control list configuration is valid
Plugins: Healthy
Plugins
  [OK] PluginAssemblies: 0
  [OK] RegisteredPlugins: 0
Database: Healthy
Connection state for Microsoft.Data.Sqlite.SqliteConnection is Open. Database is writable. Sufficient disk space available.
  [OK] FloatingDbStatus: Connection state for Microsoft.Data.Sqlite.SqliteConnection is Open. Database is writable. Sufficient disk space available.
  [OK] HistoricalDbStatus: Connection state for Microsoft.Data.Sqlite.SqliteConnection is Open. Database is writable. Sufficient disk space available.

サーバー状態の監視

Licensing Server の状態を監視するには、2 つの方法があります。

  • ダッシュボード: Licensing Server バージョン 2.0 以降では、ダッシュボード がサーバーを監視するための主要な方法です。管理者は、admin の認証情報でログインして、Overview ページで詳細な サーバーの健全性レポート を表示できます。
  • API: すべてのバージョンで、API アクセスが望ましい、または必要な場合は /v1/admin/status API を使用することもできます。このエンドポイントと admin グループ内の API を使用するには、リクエストする IP アドレスが管理者 IP 許可リストに含まれている必要があります。この要件は、スクリプトまたは自動化によって admin API にアクセスするコンピューターにも適用されます。詳細については、サーバーの詳細設定adminIpAllowlist キーを参照してください。

Licensing Server の状態

Licensing Server には 3 つの状態があります。

  • Healthy (健全): サーバーがライセンスを発行でき、すべてが正常に機能していることを示します。
  • Degraded (劣化): サーバーはライセンスは発行できますが、監視が必要な潜在的な問題があります。これらの問題はまだ重要ではありませんが、将来的に重要になる可能性があるため、注意が必要です。Degraded (劣化) 状態を引き起こす問題の例として、有効期限が迫っているサーバーライセンスが挙げられます。
  • Unhealthy (不健全): サーバーがライセンスを発行できないことを示しています。機能を回復するために、根本的な問題への早急な対応が必要です。

サーバー上のライセンスの更新

サブスクリプション期間の終了時に、サブスクリプションを更新する場合は、Licensing Server 上でライセンスを更新する必要があります。ライセンスを更新するには、サブスクリプションを更新 (リニューアル) した後に、ライセンスアーカイブファイルのダウンロードとインポート の手順を繰り返します。

Licensing Server のバージョンが 1.10 より前の場合は、古い委任ファイルを手動で削除する必要もあります。詳細については、こちらのサポート記事 を参照してください。

新しいライセンスは、現在のサブスクリプション期間が終了した後にのみ、Unity ID からダウンロードできるようになります。現在のサブスクリプション期間が終了すると、サーバー上のライセンスを更新するための 1 か月の猶予期間があります。猶予期間が終了する前にライセンスを更新しない場合、ライセンスは機能しなくなります。サービスの停止を避けるために、猶予期間中にライセンスをダウンロードして更新する必要があります。

ライセンスリニューアルがクライアント設定に与える影響

リニューアルされたサブスクリプションからライセンスをインポートする場合にも、ライセンス更新がクライアント設定に与える影響 と同じルールが適用されます。

サーバー上のライセンス変更の適用

シートの追加や削除など、Floating Licensing のサブスクリプションへの変更を Unity と交渉した場合は、サブスクリプションのライセンスをサーバーにインポートするプロセスを繰り返す必要があります。ライセンスアーカイブファイルのダウンロードとインポート のプロセスに従ってください。

ライセンス更新がクライアント設定に与える影響

ライセンスの更新は、デフォルトのツールセットを使用するクライアントには影響しません。

ツールセットを指定するクライアントの場合は、以下のようになります。

  • バージョン 1.10 以前 のサーバーでは、ツールセットの値がサーバーライセンスの EntitlementGroupId と一致している必要があります。つまり、サーバーライセンスを更新するときは、それに応じて クライアント設定 のツールセットの値を更新する必要があります。

  • バージョン 1.11 以降では、ライセンスの更新がツールセットの選択に影響することはありません。Licensing Server ではツールセットの増分の部分のバリエーションが許容されるため、特定のツールセットで 設定されたクライアント への影響はないはずです。

Licensing Server の import コマンドでは新しいツールセットが表示されます。新しいツールセットの IDは通常、古いツールセットと似ており、末尾の番号が増分されたものになります。例えば、最初の更新後、LicenseServer_3573461705080_1 ツールセットは LicenseServer_3573461705080_2 になります。

サーバーの詳細設定

Unity Licensing Server の設定が正常に完了すると、ライセンスサーバーデータのルートディレクトリlicensing-server-config.json ファイルが表示されます。

setup コマンドでカバーされていない設定を変更するには、licensing-server-config.json ファイルを編集します。以下の例には、すべての設定パラメーターが含まれています。

{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "AllowedHosts": "*",
    "Kestrel": {
        "Endpoints": {
            "HTTPS": {
                "Url": "https://[* or IP address - see Warning below]:[Port]",
                "Certificate": {
                    "Path": "[Full path of HTTPS PFX certificate - see Warning below]",
                    "Password": "[Password for HTTPS PFX certificate]"
                }
            }
        }
    },
    "licensing": {
        "serverId": "[Server name, to be set by setup CLI command]",
        "licenseUsernameObfuscation": false,
        "floatingLeaseRenewIntervalInMinutes": "15",
        "floatingLicenseExpirationInMinutes": "480",
        "licenseSigningCertificatePassword": "[Encrypted password of license signing certificate]",
        "PluginsDirectory": "Plugins",
        "defaultToolset": "[default license entitlement group Id]",
        "allowBorrow": true,
        "diskSpaceWarningThresholdMegabytes": 50,
        "accessControlList": {
            "allToolsets": {
                "type": "deny",
                "bindings": {
                    "userName": ["john", "alice"],
                    "machineName": ["LAPTOP-A", "LAPTOP-B"]
                }
            }
        }
    },
    "adminIpAllowlist": "127.0.0.1;10.20.30.40;localhost",
    "serverDirectory": "[Full directory path for Licensing Server executable]",
    "serverVersion": "[Licensing Server version]"
}

Url キーの値は、サーバー名ではなく、アスタリスク (*) または IP アドレスである必要があります。有効な例としては、https://*:443https://10.20.30.40:443 などがあります。

Windows の Path キーでは、二重引用符で囲まれた文字列でバックスラッシュを使用する場合、バックスラッシュの各インスタンスに対して 2 つのバックスラッシュを使用する必要があります。

詳細設定のキー

以下の表は、詳細設定のキーの一覧とその使用方法を示します。

キー説明
floatingLeaseRenewIntervalInMinutesサーバーがクライアントのリースを保持する期間を指定します。サーバーは、この期間が終了するまでに特定のリースの ping を受信しなかった場合、そのリースに関連付けられているライセンスを解放します。

有効範囲は 5 - 60 分です。

デフォルトの設定は 15 分です。
floatingLicenseExpirationInMinutes発行されたクライアントライセンスの有効期限を指定します。

有効範囲は 60 - 1440 分です。

デフォルトの設定は 480 分 (8時間) です。
licenseSigningCertificatePasswordPFX 形式の署名証明書の、暗号化されたパスワードです。

この値は import コマンド によって自動的に設定されます。
PluginsDirectoryサーバーがプラグインを読み取るディレクトリの完全パスです。
defaultToolsetデフォルトの製品ライセンスの識別子を格納します。

サーバー上で複数の製品ライセンスが利用可能で、クライアントが特定の製品ライセンスをリクエストしない場合、サーバーはデフォルトのライセンスを割り当てます。デフォルト値が設定されていない場合、リストから 1 番目の利用可能なライセンスを割り当てます。

すべての利用可能な製品識別子は詳細なテストレポート を開き、serverLicenses セクションの licenseEntitlementGroupId フィールドにあります。
allowBorrowユーザーがフローティングライセンスをチェックアウトしてオフラインで作業できるかどうかを指定します。

この値はブーリアンデータ型で指定します。
diskSpaceWarningThresholdMegabytesLicensing Server で使用可能なディスクスペースの警告しきい値を指定します。

ノート:このキーはサーバーバージョン 2.0 から利用できます。

この値はメガバイト単位で指定します。

ディスクスペースがこのしきい値を下回ると、サーバーの状態が Degraded に変わり、管理ダッシュボードの状態のインジケーターが黄色に変わります。サーバーのディスクスペースが不足すると、クライアントコンピューターにライセンスをリースできなくなります。
accessControlList指定したユーザーまたはコンピューター名がライセンスをリクエストできるかどうかを制御するリストを指定します。

ノート:このキーはサーバーバージョン 2.0 から利用できます。

以下のキーを指定できます。
  • どのツールセットを制御するか。現在のところ、有効な値は allToolsets だけです。
  • allowdeny のどちらかの値を持つ type キー。allow を指定すると、指定したユーザーまたはコンピューターのみがフローティングライセンスにアクセスできます。deny を指定すると、指定したユーザーまたはコンピューター以外のすべてのユーザーまたはコンピューターがライセンスにアクセスできます。
  • userName 文字列の配列、あるいは machineName 文字列の配列、あるいはその両方を持つ bindings キー。userName または machineName を少なくとも 1 つ指定する必要があります。両方の配列に値が指定されている場合、ユーザーの値がどちらかの配列に一致すれば、影響を受けます。userNamemachineName の値は、大文字と小文字を区別しません。
重要: 以下の設定ミスを避けてください。
  • 以下のエラーにより、サーバーは Degraded 状態で起動し、すべてのユーザーとコンピューターのアクセスを許可します。
    • allToolsets キーを省略する。
    • 空の allToolsets オブジェクトキーを指定する。
    • allow キーも deny キーも指定しない。
  • bindings を指定せずに allow 値を指定すると、ユーザーもコンピューターもライセンスをリクエストできないため、サーバーは Unhealthy 状態で起動します。
アクセス制御が原因でライセンスアクセスに失敗した場合は、サーバーログ (Unity.Licensing.Server.log) とクライアントログ (Unity.Licensing.Client.log) に記録されます。ログメッセージには、ユーザーの userName (ユーザー名)、machineName (マシン名)、およびライセンスアクセスに失敗した理由が含まれます。ログエントリーのサンプル:

API Error 403 while processing request (...)License access denied (The user (userName: jsmith, machineName:P4DSFHTE) does not have license access because the userName is on the access control list's deny bindings.) リクエスト処理中の API エラー 403 (...) ライセンスアクセスが拒否されました (アクセス制御リストの deny bindings に userName があるため、ユーザー (userName: jsmith、machineName: P4DSFHTE) は、ライセンスにアクセスできません)。
adminIpAllowlist管理者エンドポイントにアクセスできる IP アドレスを、セミコロン区切りの文字列で指定します。

ワイルドカード文字またはサブネットはサポートされません。

その他のリソース