Enterprise 技術情報 Enterprise Technical information
Kompiraの機能 ジョブフローを実行するフォームを作成する
「ジョブフローに権限設定をする」では、オペレーターにジョブフローの中身は見せずに実行だけを依頼したい場合、Kompiraのフォーム機能を使う事をご紹介しました。今回はフォーム機能について、もう少し詳しくご説明します。
本コラムでは次の環境での動作を確認しています。
環境情報
本稿は、以下の環境で検証しています。
項目 | バージョン |
OS | CentOS Linux release 7.7.1908 |
Kompira | ver.1.5.5.post7 |
まずは、以下のようなジョブフロー「サンプル」を用意します。指定されたサーバー、ユーザー名、パスワードで接続し、指定のコマンドを実行して結果を表示するというものです。
| srv | | usr | | pwd | | cmd | [ __node__ = srv, __user__ = usr, __password__ = pwd ] -> [cmd] -> print($RESULT)
この場合のジョブフローの実行画面は次のようになります。
一見してどのように入力したらよいか分かりにくいですね。
このジョブフローを呼び出すためのフォーム「サンプルフォーム」を作ってみます。
この場合のフォームからの実行画面は次の様になります。
フォームの編集画面には「フィールド名」「フィールド表示名」「フィールド種別」「フィールド修飾子」という入力欄が用意されています。
「フィールド名」には提出オブジェクトに対して渡す引数の名前を指定します。
今回呼び出す「サンプル」ジョブフローはsrv, usr, pwd, cmdという4つの引数を持っているので、それらを指定することになります。
「フィールド表示名」には、実際にジョブフローに渡される引数となる「フィールド名」とは別に、フォームを開いたときに表示させる文字列を自由に指定することができます。さらに、「フィールド種別」で値の種別を選択することができます。一部の種別では指定された様式以外のデータが入力された場合に、エラーとして再入力を促します。例えば”IPアドレス”の項目にはフィールド種別に”IPAddress”を指定しているため、異なる文字列を入力するとエラーとなります。
同様に”パスワード”の欄はフィールド種別を”Password”にしたため、入力時には伏字で表示されるようになります。
「フィールド修飾子」には、その他の入力条件をJSON形式で設定することができます。
例えばパラメータ”srv”のフィールド修飾子を
{"default":"192.168.10.1"}
とすると、デフォルト値を指定できます。この場合にはフォーム画面にあらかじめ”192.168.10.1″が記入された状態になります。
パラメータ”usr”のフィールド種別を”enum”、フィールド修飾子を
{ "enum" : [ "user1" , "user2" , "user3"] }
とすると、入力欄がプルダウンでの選択となります。
この場合に注意するのは”usr”のフィールド種別を”enum”ではなく”string”のままにすると、変わらずに文字列入力のフォームのままになります。
パラメータ”cmd”のフィールド修飾子を
{"help_text":"実行したいコマンドとオプションを合わせて入力してください"}
のようにすると、入力項目に説明を表示する事が出来ます。
オブジェクトを指定させる場合
上記の例ではIPアドレス、ユーザー名、パスワードを実行時に指定させていますが、代わりにノード型オブジェクトを選択させる事も出来ます。(それに合わせてジョブフローも”__node__”に代入するように書き換える必要があります。)仮にディレクトリ”./サーバー”中にノード型のオブジェクトを入れているとして、パラメータ”srv”のフィールド表示名を”サーバー名”、フィールド種別を”Object”、フィールド修飾子を
{"directory":"./サーバ", "object":"/system/types/NodeInfo"}
とすると、下図のように”./サーバ” ディレクトリ中のノード型オブジェクトの一覧を表示するようになります。
フォームを利用すると、ジョブフローに直接アクセスさせずにジョブフローを実行する事ができるうえ、実行時にパラメータを指定させる場合に型チェックを行ったり、入力の選択肢を作る事が出来ます。ジョブフローの作成者以外にオペレータの人にジョブフローを実行してもらう場合など、専用のフォームを作ると入力ミスを軽減し、より安全にジョブフローを実行させることができます。
スタートガイド
Kompiraジョブフローの基礎
ジョブフローの簡単な例
Kompiraの機能
-
- フィールド修飾子でフィールドの入力内容に制約を設ける
- Kompiraでの文字列のパターンマッチング
- Kompira上でWikiページを作成する
- スケジューラを使って定期的にジョブを実行する
- ジョブフローを実行するフォームを作成する
- テーブル内の情報を選択して処理を実行する
- ジョブフローに権限設定をする
- ジョブフロー画面の各種設定
- Pythonで記述された処理をKompiraから呼び出す
- Kompiraオブジェクトのプロパティ,メソッド,フィールドを扱う
- Windowsでリモートスクリプトを実行する(その1)
- Windowsでリモートスクリプトを実行する(その2)
- Kompira上のデータをバックアップする(その1)
- Kompira上のデータをバックアップする(その2)
- Kompira上のデータをバックアップする(その3)
外部との連携
-
- Prometheusからの通知をKompiraで受信する
- Kompira cloud Pigeonを利用した通知電話の利用
- ネットワーク機器へのコマンド投入
- KompiraからWindowsGUIアプリケーションを操作する (1/2)
- メールを送信する
- メール受信をトリガーにしてジョブフローを実行する
- アラートメールをフィルタリングして転送する
- チャネルを利用して外部システムからデータを受信する
- Webページから内容を取得する
- Redmineへ新規チケットを登録する
- Redmineでのチケット作成をKompiraに通知する
- Kompira REST APIを利用して外部からジョブフローを実行する
- Kompira REST APIを利用して外部からオブジェクト情報を取得する
- KompiraからSlackに通知する
- Slackでの投稿をKompiraに通知する
- KompiraからTwilioで電話をかける
- Zabbixからの通知をKompiraで受信する
- syslogをKompiraで受信する
- snmptrapをKompiraで受信する
- KompiraでExcelファイルの読み書きをする
- KompiraでGoogle SpreadSheetの読み書きをする
- Active Directoryから情報を取得する
- Active Directoryにユーザーを登録する