ジョブ: 最小構成 (Windows)

想定読者: Windowsエンドポイントへカスタム実行ファイルをデプロイする統合担当者。
本例では、Windows向けの最も単純で有効なジョブJSONを示します。インターバルスケジュールで1つのタスクを実行し、エージェントのサービスアカウントで動かし、KeeperLogger へのログパブリッシュを許可する構成です。デプロイ前にプレースホルダを実際の値に置き換え、出発点としてご利用ください。
ジョブのJSON
変更する箇所
id
本ジョブを一意に識別する文字列。ハイフンを使い、アンダースコアは使いません。ファイル名は id と一致させます (例: "id": "my-tool" のときは my-tool.json)。
name
ログや管理画面に表示する名称
description
任意。後からデプロイを保守する担当者向けの注記として有用
schedule.intervalMinutes
実行間隔 (分)。60 は1時間ごと。実行の間隔であり、時刻に揃えた周期ではありません。
tasks[0].command
パスや拡張子なしの実行ファイル名。エージェントは Jobs\bin\{command}\{command}.exe を自動解決
tasks[0].executablePath
エンドポイント上の実行ファイルのフルパス。例中の MyTool を実際の実行ファイル名に置き換え
tasks[0].arguments
実行ファイルが受け付けるフラグ。{KeeperApiBaseUrl} は削除せず残す。エージェントが実行時にローカルのHTTPS APIベースURLへ差し替え、実行ファイルからプラグイン設定APIを呼び出せるようにする
tasks[0].timeoutSeconds
エージェントがタスクを強制終了するまでの最大実行時間。3600 は1時間。ツールに合わせた値を指定
osFilter、mqttTopics、ExecutionType、continueOnFailure、scriptType は、標準的なWindows向けバックグラウンドタスクでは、本例どおりのままにしてください。
動作の要点
osFilter により、このジョブはWindowsエンドポイントでのみ実行されます。異種OSが混在するフリートへ配布した場合、LinuxおよびmacOS上のエージェントはこのジョブをスキップします。バリデータも、一致しないプラットフォームではバイナリ存在チェックを行わないため、Linux用パスを用意しなくてもWindowsマシンから本ジョブを登録できます。
ExecutionType: Service のとき、タスクはエージェントのサービスアカウントで実行されます。マシン全体へのアクセスが必要で対話ユーザーセッションは不要なバックグラウンドツール向けの設定です。起動直後にプロセスがエージェントの起動済みプロセス登録簿へ登録されるため、証明書チェックなしでMQTTやプラグイン設定へアクセスできます。
mqttTopics.allowedPublications は、KeeperLogger トピックへのパブリッシュをタスクに許可する設定です。MQTTブローカーはこの一覧に基づきパブリッシュを制御します。許可されていないトピックへは、ブローカーへの接続に成功していてもパブリッシュは拒否されます。MQTTへ一切パブリッシュしないツールなら mqttTopics ブロックごと省略できますが、その場合エージェントは環境変数 KEEPER_JOB_ID および KEEPER_JOB_NAME を注入しません。
{KeeperApiBaseUrl} は、実行時にエージェントがローカルのHTTPS APIベースURL (通常は https://127.0.0.1:6889) へ差し替えます。実行ファイルはコマンドライン引数からこれを読み取り、GET /api/PluginSettings/KeeperPrivilegeManager を呼び出してMQTTブローカーアドレスを取得します。
デプロイ前に
先にバイナリをデプロイする: ジョブを登録する前に、エンドポイントの
executablePathにMyTool.exeを配置します。バリデータはPOST /api/Jobsの呼び出し時点でバイナリの存在を確認します。バイナリのパスを確認する: Windowsでのエージェントのデフォルトインストールルートは
C:\Program Files\KeeperPrivilegeManagerです。別ルートで展開している場合はexecutablePathを合わせて更新します。ファイル名は
{id}.jsonにする:idフィールドを変えた場合はファイル名も一致させます。"id": "my-tool"のジョブはmy-tool.jsonとして保存します。
デプロイ
保存前に、稼働中のエージェントに対してJSONを検証します。
続いてジョブを作成します。
手動トリガーで動作を確認します。
フリート全体への展開では、各エンドポイントでAPIを直接呼び出すのではなく、Keeper管理コンソール経由の JobUpdate ポリシーを使用してください。現行のポリシースキーマはKeeper管理者にお問い合わせください。
最終更新

