プラグイン: 最小構成 (Linux)

想定読者: Linuxエンドポイントに常駐型の管理プラグインを登録する統合担当者。
本ページはプラグイン: 最小構成 (Windows) のLinux向け版です。プラグインの構造と各フィールドの意味は同じで、違いはバイナリパス、supportedPlatforms、およびLinux特有の署名とパーミッションの考慮です。各フィールドの詳しい説明は、上記のWindows版ページを先に読み、本ページではLinuxで変わる点のみを扱います。
プラグインのJSON
変更する箇所
フィールド自体はWindows版と同じです。Linux固有の置き換えは以下のとおりです。
id
ファイル名と一致する安定した一意の識別子 ("id": "MyBridge" なら MyBridge.json)。
executablePath
エージェントルートからの相対パスで、拡張子 .exe は付けません。Linuxでのエージェントのデフォルトルートは /opt/KeeperPrivilegeManager のため、bin/MyBridge/MyBridge は /opt/KeeperPrivilegeManager/bin/MyBridge/MyBridge に解決されます。インストールルートは管理者へ確認してください。
supportedPlatforms
Linux専用なら ["Linux"]。同一JSONで複数OSを扱う場合は ["Linux", "Windows", "macOS"] も可能ですが、OSごとにファイルを分けた方が保守しやすいことが多いです。
Subscription.Topic
当該プラグインの主たるMQTTトピック。慣例としてプラグインの id を使います。
metadata.mqttTopics.publish
バイナリがパブリッシュするすべてのトピック。ログメッセージを出す場合は KeeperLogger を含めます。
metadata.mqttTopics.subscribe
主たる Subscription.Topic 以外にバイナリがサブスクライブするすべてのトピック。
拡張子 .exe は付けない: executablePath とディレクトリ名の両方で、バイナリ名に拡張子はありません。Linuxでは慣例として小文字の mybridge なども使われますが、エージェントは指定した名前をそのまま解決します。
ファイルのパーミッション: オーケストレーターが起動する前に、バイナリがエージェントのサービスアカウントから実行可能である必要があります。
エージェントが特定の非rootユーザーで動いている場合は、そのユーザーがバイナリと親ディレクトリに対して読み取りおよび実行権限を持つことも確認します。
Linuxでの署名: WindowsやmacOSのようなOS全体で一律のバイナリ署名要件はありません。エージェントのプロセス信頼は、主としてオーケストレーターがバイナリを起動した事実に基づきます。手動起動ではなく常にエージェント経由で起動することが、コード署名より重要です。IMAやGPG署名パッケージなどを運用で使う場合は、他コンポーネントと同様にそれらに合わせます。MQTTやプラグイン設定へ、オーケストレーター起動以外の文脈からアクセスさせる必要がある場合は、appsettings.json の Settings:AlternativeSignatures に証明書のサムプリントを追加します。
autoRestart とサービス管理: LinuxではKEPMエージェントは多くの場合 systemd サービスとして動きます。autoRestart: true でプラグインが異常終了した場合、オーケストレーターが systemd とは独立に再起動します。短時間での再起動ループはログ量とCPU負荷が大きくなり得ます。想定どおりの停止ではきれいに終了し、終了前に明確なメッセージをログへ出して、クラッシュと意図的停止を区別できるようにします。
デプロイ前に
executablePathが解決する場所へバイナリを置き、chmod +xで実行権限を付与します。JSONファイルを
{AgentRoot}/Plugins/MyBridge.jsonに置き、ファイル名をidと一致させます。環境ごとの正式な投入手順は管理者と確認します。
オーケストレーターが新しい登録を読み込むよう、エージェントサービスを再起動します。
検証
エージェント再起動後、ログでプラグイン名を確認して起動したことを確かめます。続いて、起動時にバイナリ内からプラグイン設定が取得できるかを確認します。
この呼び出しにはプラグイン階層の認証が必要で、エージェントが起動したプロセス以外のシェルから実行すると 403 になります。起動時のスモークテストとして、同等の呼び出しをプラグインバイナリ内から実行します。
最終更新

