コンテンツにスキップ

ライセンスをインストールして Business へ移行する

プランを購入し、ライセンスを受け取りました。このページでは、そのファイルをどこに 置くか、稼働中のエンジンへ適用する方法、インストール済みの内容を確認する方法、そして Business プランを購入した場合に Community バイナリを商用バイナリへ 何も再インストールせずに切り替える方法を説明します。

購入したもの 届くもの その扱い
Community インストールするものはありません すでに稼働中です。このページの手順は該当しません
Business / Enterprise、セルフホスト ライセンスファイルとダウンロードトークン ライセンスをインストールしてから商用バイナリへ切り替えます
Cloud ホストされたテナントの認証情報 自分のホストにインストールするものはありません

ライセンスは単一の署名済み blob です。customer.license など任意の名前でファイルに 保存し、同じメールに記載されたダウンロードトークンも保管してください。両者は別々の 手順で使用し、インストールするのはライセンスだけです。

1 · ライセンスをインストールする

Section titled “1 · ライセンスをインストールする”
ターミナルウィンドウ
olivares license install ./customer.license --data-dir /var/lib/olivares

このコマンドは、ビルドに埋め込まれた Ed25519 公開鍵に対して、何かを書き込む前に blob を検証します。そのため、途中で切れたコピー&ペーストは次回起動時ではなく、 ここで失敗します。成功すると、エンジンがデフォルトで読み込む正規の保存ライセンス <data-dir>/license.key をモード 0600 で書き込みます。

パスの代わりに - を渡すと、標準入力から blob を読み取ります。

ターミナルウィンドウ
pbpaste | olivares license install - --data-dir /var/lib/olivares

既存ライセンスの上にインストールすると、それをアトミックに置き換え、置き換えた ライセンスを表示します。

稼働中のエンジンへ適用する — 再起動は不要

Section titled “稼働中のエンジンへ適用する — 再起動は不要”

稼働中のエンジンは新しいライセンスをインプレースで取り込みます。次のいずれでも適用 できます。

ターミナルウィンドウ
kill -HUP "$(pidof olivares)" # signal the running process
curl -X POST .../v1/console/runtime/reload # the API half

…または、コンソールの再読み込みコントロールを使用します。再起動でも適用できますが、 必要ではありません。

エンジンが検索する場所と優先順位

Section titled “エンジンが検索する場所と優先順位”

すでに別の方法でライセンスを注入している場合、データディレクトリのファイルは 4 つの ソースのうち最も優先順位が低いことに注意してください。エンジンは次の順で、上から 解決します。

  1. --license <path>(または構成ファイル内の LicenseFile)
  2. OLIVARES_LICENSE_PATH=<path>
  3. OLIVARES_LICENSE=<blob> — 環境内に直接指定したライセンス
  4. <data-dir>/license.key — license install が書き込むもの

license install は、これから書き込むファイルより override が優先されていることを検出できる場合に 拒否します。その override の下にインストールすると、エンジンが決して読まないファイルが残り、 変更がないのに exit 0 と表示されます。検出した override も表示します。--force はそれでもファイルを 準備します。これは、これから override を削除する場合に正当です。

2 · インストール済みの内容を確認する

Section titled “2 · インストール済みの内容を確認する”
ターミナルウィンドウ
olivares license status --data-dir /var/lib/olivares

status はオフラインで動作し、エンジンと同じ優先順位でライセンスを解決します。そのため 「ファイルがあるか」ではなく、重要な問いである実際に有効なライセンスはどれかに答えます。 解決したソース、保持者、プラン、有効期限を表示します。

インストールするたび、また override を削除した後に実行してください。

3 · Community → Business、インプレース

Section titled “3 · Community → Business、インプレース”

Community ビルドに有効な Business または Enterprise ライセンスをインストールしても、そのビルドは そのまま動作し続けます。セッションコックピットとその他の商用ページは、このインストールを Business に切り替えて初めて表示されます。コンソールの Edition & license ビューには、 インストール済みのライセンスがビルドとは別に表示されます。Expires は有料の期間で、 Lease until は、表示される場合、それとは別の暫定的なインスタンスリースです。 Docker で実行している場合は、下の Docker と Compose に進んでください。

ライセンスをインストールすると、商用バイナリをダウンロードできます。 再インストールは不要で、データも移動しません。

ターミナルウィンドウ
export OLIVARES_UPGRADE_TOKEN=<TOKEN> # not needed once this installation is connected
olivares upgrade --edition business

olivares license install と olivares license status は、このインストールの導入方法に合わせた正確なコマンドを表示します。コンソールの Edition & license ビューも同じ手順を 1 つのボタン Business に切り替える として表示します。エンジンがビルドをダウンロードして検証し、その場で置き換えて、そのビルドで再起動します。ダウンロードトークンは、ライセンス付きダウンロードポータルの Downloads ページ (https://licenses.olivares.ai/portal/downloads) にこれらのコマンドと並んで表示され、ライセンスのメールにも記載されています。上のように名前で渡すと、プロセス一覧に出ません。接続済みのインストール (olivares license connect start) にはトークンは不要です。--enterprise は同じルートの旧来の書き方です。コンソールのボタンには、エンジン自身の環境にあるトークンかこの接続のどちらかが必要です。どちらもない場合、ビューにはボタンの代わりにコマンドが表示されます。

プラットフォーム用の署名済み商用ビルドを取得し、署名をオフラインで 検証します。改ざんされたアーティファクトはアップグレードを中止させ、稼働中の バイナリは変更されないままです。その後アトミックに置き換え、以前のバイナリの バックアップを保持します。Business は Community と同じバージョン番号なので、すでにそのバージョンを 実行している場合にも使えます。適用せずに計画を確認するには、先に --check を実行します。この変更は edition: community -> enterprise と表示されます。

ターミナルウィンドウ
olivares upgrade --edition business --check

サービスを再起動してから、モジュールを有効にします。

ターミナルウィンドウ
olivares enterprise enable <preset> # starter | regulated | full

コマンドとプリセット名は、商用バイナリが受け付けるものです。プリセットはエディションではなく、Business の 4 つの機能ファミリーとは 1 対 1 では対応しません。 有効化は管理され、監査されます。最初に diff を表示し、シークレットやレビューが必要な モジュールは半端に有効化せず、準備状態に置きます。olivares enterprise status は有効な ものを報告します。これらのコマンドは商用バイナリにのみ存在します。 olivares enterprise がコマンドとして存在しない場合、まだ Community ビルドが稼働して おり、上記の切り替えは完了していません。

公開されている docker.io/olivaresai/olivares イメージは Community です。コンテナ内では、 olivares upgrade はリリースをイメージではなくデータボリュームにインストールするため、 コンテナを再作成すると再びそのリリースが起動します。これは、Business リリースがイメージより 新しい場合、または同じバージョンの場合にそれを適用します(--check は変更を edition: community -> enterprise と表示します)。 以下の説明に従って自分でイメージをビルドすることもできます。 ライセンスをインストールしてあれば(セクション 2)、稼働中のコンテナ内でアップグレードを 実行し、再起動します。トークンは納品メールに記載されています。プロセス一覧に表示されないよう、 名前で渡します。

ターミナルウィンドウ
export OLIVARES_UPGRADE_TOKEN=<TOKEN>
docker compose exec -e OLIVARES_UPGRADE_TOKEN olivares olivares upgrade --edition business --yes
docker compose restart olivares

リリースは、データディレクトリ配下の ota/(同梱イメージでは /var/lib/olivares/ota)に、 検証に使った署名付きマニフェストおよびアーティファクトとともに保存されます。イメージのバイナリは、 そのリリースがイメージより新しい場合、または同じバージョンで異なるビルドの場合(Business として 適用したバージョンの Community イメージ)に、それを起動します。ボリューム内のものはそれだけでは 信頼されません。起動のたびに、マニフェストの署名をイメージに埋め込まれた OTA 鍵で、 アーティファクトをマニフェストが署名したダイジェストで検証します。検証の証明はボリュームではなく コンテナの一時ディレクトリ(同梱の Compose ファイルは tmpfs をマウントします)に保持され、 再作成すると空になります。イメージが適用済みのリリースより新しい場合はイメージが動作し、 起動ログにその旨が出ます。もう一度アップグレードを実行してください。検証できない証拠は メッセージを出して無視され、イメージが動作します。ボリュームには以前のバイナリの バックアップは残りません。イメージのバイナリに戻すには ota/ を削除します。ファイルの実行を 許可するボリュームが必要です(名前付きボリュームは許可します。noexec マウントでは olivares serve が停止して理由を示し、イメージのバイナリを黙って実行することはありません)。

自分でイメージをビルドすることもできます。Business バイナリの同じバージョンと同じ Linux アーキテクチャをライセンス付きダウンロードポータルから ダウンロードし、ダウンロードに付属する手順に従って署名とチェックサムを検証します。 そのうえで、検証済みのバイナリを、一致する Community ランタイムイメージの上に自分のホストで 重ねることができます。検証済みのバイナリを olivares という名前で置いたディレクトリで、 次の Dockerfile を使用します。

ARG COMMUNITY_IMAGE
FROM ${COMMUNITY_IMAGE}
COPY --chmod=0755 olivares /usr/local/bin/olivares

そのバージョンの Community イメージのダイジェストを指定してビルドします。ダイジェストは リリースを検証するの手順で検証したものを使います。 出来上がるイメージは、元のイメージの非 root ユーザー、エントリポイント、ポートを引き継ぐため、 Dockerfile に USER 行は不要です。

ターミナルウィンドウ
docker build --build-arg COMMUNITY_IMAGE=docker.io/olivaresai/olivares@sha256:<digest> \
--tag olivares-business-local:X.Y .

このイメージは非公開のまま保管し、ダウンロードに付属する商用ライセンスと通知を保管してください。 ライセンスファイルやダウンロードトークンをビルドコンテキストに入れないでください。 Compose サービスの image を olivares-business-local:X.Y に設定してから、 docker compose up -d --no-deps --force-recreate olivares でそのサービスを再作成します。 単体の Docker では、このイメージと同じボリューム、同じ引数でコンテナを再作成します。 データボリュームは保持してください。down --volumes は使わないでください。

再起動後に Edition & license を確認します。エディションが Business と表示され、 インストール済みのライセンスはデータボリューム内に残っているはずです。Enterprise の契約も この商用ビルドを使用します。契約固有のアーティファクトは、そのダウンロードの手順に従います。

ターミナルウィンドウ
olivares license uninstall --data-dir /var/lib/olivares --yes

このコマンドは <data-dir>/license.key を削除し、削除した内容を報告します。install と同様に、 OLIVARES_LICENSE* override を検出できる間は拒否します。そのファイルは実際に有効なものではなく、 削除しても何も変わらないためです。また、同じ盲点があります。別プロセスで稼働するエンジンに渡された --license flag は、このコマンドからは見えません。これはコンソール自身の DELETE /v1/console/license のオフライン側です。

ライセンスを削除しても、実行していたものは何も無効になりません。証明を取り下げる だけであり、元に戻すまで商用バイナリは商用バイナリとして 動作し続けます。

  • ライセンスの発行(license keygen / sign)は、同じコマンドのベンダー側の 操作です。顧客には必要ありません。
  • 各プランの内容は料金ページにあり、ここでは扱いません。
  • このモデルの仕組み — サブスクリプションがスイッチではなくアーティファクトへの アクセスである理由 — はオープンコアとライセンスで 説明しています。
  • 購入 → 返金のリハーサル(実カードではなくサンドボックスのフィクスチャを使用)は コマーシャルサイクルをリハーサルする を参照してください。