メインコンテンツまでスキップ

OpenLM LicOps を設定する

ジョブの許可を開始するには、LicOps を OpenLM Platform に接続し、LicOps がライセンスプールを認識していることを確認します。シート数、サーバーヘルス、ルール、予約はすべて OpenLM Platform から取得されるため、接続が成功するまでは、ほかの機能は動作しません。

LicOps を OpenLM Platform に接続する​

LicOps は、Client Type が Router の ID クライアントの認証情報を使って OpenLM Platform にサインインします。これは、フェイルオーバー用の Router と同じクライアントタイプです。

認証ファイルを取得する​

認証ファイルを取得するには、次の手順を実行します。

  1. OpenLM Platform で、Navigation を選択し、Platform Administration の下にある Identity を選択します。

  2. Authorization、Add Client の順に選択します。

  3. Select Client Type で Router を選択します。

  4. 説明を入力します。

  5. Encrypted authorization client はオフのままにします。

  6. Save を選択します。

    Identity の Add Client Type ページ。クライアントタイプとして Router が選択され、説明が入力され、Encrypted authorization client がオフになっている LicOps は、フェイルオーバー用の Router と同じく、Router タイプのクライアントでサインインします。

  7. 認証ファイル(router-authorization.json などの JSON ファイル)をダウンロードします。

このファイルには、LicOps に必要な 3 つの値が含まれています。OpenLM Platform の Base URL、Client ID、Client Secret です。シークレットが手元にない場合は、Authorization ページでクライアントを選択し、Reset Secret を選択します。以前のシークレットは使用できなくなります。認証ファイルの詳細については、Identityを参照してください。

タイプが Router のクライアントを使用してください。ほかのタイプの認証情報でもサインインはできますが、OpenLM Platform は LicOps からの問い合わせを拒否します。この問題はサインインの失敗としてではなく、後になってプールが見つからないという形で現れます。

認証情報を入力する​

認証情報を Router UI に入力するには、次の手順を実行します。

  1. http://<licops-host>:8101/router-management/ を開いて Platform Connection を表示します。

    <licops-host> は、LicOps を実行しているホストに置き換えます。

  2. Import Auth File を選択し、認証ファイルを選択します。

  3. 代わりに値を手動で入力するには、Base URL、Client ID (Optional)、Client Secret (Optional) を入力します。

    3 つのフィールドはすべて入力してください。Request Timeout (seconds) は 30 のままにします。

  4. Check Connection、Save の順に選択します。

Router UI の Platform Connection ページ。Base URL、Client ID、Client Secret、Request Timeout の各フィールドを含む Connection Details フォームと、Check Connection ボタンおよび Import Auth File ボタンが表示されている Router UI は、LicOps でもフェイルオーバー用の Router でも同じです。接続が機能するまでは、フォームの下のエラー通知にその理由が表示されます。

保存してから約 10 秒待ち、フォームの下にエラー通知が表示されていないことを確認します。通知が表示されていなければ、Router は OpenLM Platform と同期しています。通知が消えない場合は、通知にその理由が表示されます。トラブルシューティングを参照してください。

代わりにスクリプトで接続するには、次のコマンドを実行して、同じ 3 つの値を Router API に送信します。

curl -X PUT http://localhost:8100/api/v1/admission-controller/platform-credentials \
-H "Content-Type: application/json" \
-d '{
"baseUrl": "https://platform.example.com",
"clientId": "<client-id>",
"clientSecret": "<client-secret>",
"requestTimeoutSeconds": 30
}'

Router UI と REST API は、フェイルオーバー用の Router の場合と同じように動作します。すべてのフィールドと接続チェックについては、OpenLM Router を設定するを参照してください。

LicOps が LicOps モードで動作していることを確認する​

LicOps は、最初の同期時に LicOps Router として OpenLM Platform に自身を登録し、OpenLM Platform は LicOps の初期構成を作成します。初期構成の内容は、リッスンポート 30001(チェックアウトを LicOps 経由でルーティングする場合にのみ使用します)と、無効に設定されたセッションアフィニティです。LicOps は次の同期でその構成を取得します。構成が反映されたことを確認します。

curl http://localhost:8100/api/v1/status
{
"status": "ok",
"listenPorts": [30001],
"message": "Load balancer mode active",
"configurationManagement": {
"shape": "serviceManaged",
"lastSync": {
"lastSuccessfulSync": "2026-10-15T13:36:02Z",
"lastAppliedConfigVersion": 1,
"lastFailure": null
}
}
}

"message": "Load balancer mode active" は、LicOps Router であることを示します。代わりにポートマッピングや pairStatuses を報告する Router は、フェイルオーバーモードで起動されています。トラブルシューティングを参照してください。

OpenLM Platform では、同じ構成が LicOps Configuration に表示されます。これは、OpenLM LicOps とフェイルオーバー用の OpenLM Router の両方を設定するアプリです。開くには、次の手順を実行します。

  1. Navigation を選択し、Licenses and Features の下にある LicOps Configuration を選択します。
  2. LicOps を選択し、Router が使用しているリッスンポートとセッションアフィニティのポリシーを確認します。

LicOps Configuration の LicOps ページ。リッスンポート 30001 とセッションアフィニティの設定が表示されている LicOps ページは、LicOps モードの Router でのみ表示されます。フェイルオーバー用の Router では、代わりに Port Mappings が表示されます。

LicOps ページは参照用です。リッスンポートやセッションアフィニティは、このページでは編集しません。別の値が必要な場合は、OpenLM サポートにお問い合わせください。

LicOps Configuration に、まだ Router から報告がないと表示される場合は、Router がまだ OpenLM Platform と同期していません。接続してから約 10 秒待ち、ページを再読み込みしてください。ページは自動では更新されません。

LicOps がライセンスプールを認識していることを確認する​

LicOps がジョブを許可するのは、OpenLM Platform のライセンスサーバーとフィーチャーから作成したプールに対してだけです。一覧表示するには、次のコマンドを実行します。

curl http://localhost:8100/api/v1/stats
[
{ "serverId": 42, "host": "lic01.example.com", "port": "27000", "vendor": "MLM", "feature": "MATLAB",
"total": 50, "used": 31, "reserved": 2, "free": 17, "isHealthy": true, "activeSessions": 0 },
{ "serverId": 43, "host": "lic02.example.com", "port": "27000", "vendor": "MLM", "feature": "MATLAB",
"total": 50, "used": 28, "reserved": 0, "free": 22, "isHealthy": true, "activeSessions": 0 }
]

各プールのライセンスサーバーごとに 1 行ずつ表示されます。各フィールドの意味は次のとおりです。

フィールド意味
vendor、featureプールの名前。LicOps へのすべてのリクエストで、大文字と小文字の区別も含めて、この文字列をそのまま送信する必要があります。
totalライセンスサーバーがそのフィーチャーに対して付与するシート数。
usedOpenLM Platform による最新の読み取り時点で、ライセンスサーバーがチェックアウト済みと報告しているシート数。
reservedLicOps がこのサーバーで許可したものの、まだチェックアウトされていないシート数。
free新しいリクエストがこのサーバーで取得できるシート数(total − used − reserved)。
isHealthyOpenLM Platform がサーバーを稼働中と報告しているかどうか。LicOps は、異常なサーバーにシートを配置することはありません。

ライセンスサーバーがこの一覧に表示されるのは、そのサーバー上の OpenLM Broker を通じて OpenLM Platform がサーバーを監視している場合だけです。サーバーやプール全体が見つからない場合は、システム要件を参照してください。

ベンダー名とフィーチャー名は、手入力せずにこの一覧からコピーしてください。名前がどのプールにも一致しないリクエストは NoServerAvailable として拒否されます。この理由は、綴りの誤りではなく、サーバーが不足しているかのように見えます。

一覧が空([])の場合、LicOps にはまだプールがなく、すべてのリクエストが拒否されます。接続してから約 10 秒待ち、トラブルシューティングの説明に従って接続を確認してください。

テストアドミッションを実行する​

スケジューラーを接続する前に、1 つのジョブに相当するリクエストを手動で送信します。前のセクションの一覧にあるプールを使用してください。

SID=$(uuidgen)

# Ask for one seat.
curl -s -X POST http://localhost:8100/api/v1/admission-controller/admit \
-H 'Content-Type: application/json' \
-d "{\"sessionId\":\"$SID\",\"vendor\":\"MLM\",\"feature\":\"MATLAB\",\"totalQuantity\":1}"

# Ask which server to check out from.
curl -s -X POST http://localhost:8100/api/v1/admission-controller/dispatch \
-H 'Content-Type: application/json' \
-d "{\"sessionId\":\"$SID\",\"executionNodeIp\":\"127.0.0.1\"}"

# Give the seat back.
curl -s -X POST http://localhost:8100/api/v1/admission-controller/release \
-H 'Content-Type: application/json' \
-d "{\"sessionId\":\"$SID\"}"

3 つのレスポンスは、順に "decision": "Admit"、27000@lic01.example.com のような licenseFile、"state": "Released" になります。最初のリクエストから最後のリクエストまでの間、/api/v1/stats に表示されるそのプールの reserved の値は 1 増えています。admit が "decision": "Deny" を返した場合は、その reason に理由が示されます。API リファレンスを参照してください。

次の手順​

次のページを参照してください。

ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。