Kompira

Menu Menu

Enterprise Technical information

Kompiraの機能 テーブル内の情報を選択して処理を実行する

複数サーバーに対してコマンドを実行する」ではテーブルに登録した全ての機器に対する一括処理を行う方法をご紹介いたしましたが、特定機器に対して処理を行う場合は一体どうすれば良いでしょうか。 機器の数が限られている場合は「ジョブフローを実行するフォームを作成する」に記載の「オブジェクトを指定させる場合」の手順にてフォームからテーブル内の機器を選べるようにしても良いですが、数が増えるとセレクトボックスが長くなり、対象機器が見つかりにくくなってしまいます。 こういったケースにおいて有用な機能として、今回の記事ではテーブルの関連オブジェクト機能を活用し、選択した機器を対象にジョブフローを実行する方法をご紹介します。
  環境情報 本稿は、以下の環境で検証しています。
項目 バージョン
OS CentOS Linux release 7.7.1908
Kompira ver.1.5.5.post7
 
    テーブルの作成 まずは機器情報を格納するためのテーブル「サーバー一覧」を作成します。Kompira上で機器情報を取り扱うためのオブジェクトとしてノード情報型が用意されておりますので、テーブルのオブジェクト型には「ノード情報」を指定します。 テーブルを作成したら、処理対象となる機器情報を追加してください。   ノード情報の追加   上記の例では「サーバー一覧」テーブルに「server1 ~ server3」の3台のサーバーを登録しています。 以降の説明はこの3台のサーバーが登録された仮定にて行います。   ジョブフローの作成 本記事ではサンプルの題材として、機器情報に登録されたホスト名・IPアドレスを表示するジョブを作成します。 下記の内容で、新規ジョブフローを作成してみましょう。  
| servers |  # ノード情報型のオブジェクト配列を受け取る

{for sv in servers |
  print(sv.hostname, sv.ipaddr)  # ノード情報型のフィールド値を表示
}
  ジョブフローが作成できたら、パラメータ「servers」に機器情報を配列で渡し、動作確認をしてみましょう。 機器情報の配列は、例えば [./サーバー一覧/server1, ./サーバー一覧/server2] のように記載します。   関連ジョブの呼び出し   上記の例では、実行結果は次の様になります。   実行結果   関連オブジェクトの追加 ここまでの手順でテーブル・ジョブフローの用意が出来ましたので、実際に関連オブジェクトの設定をしてみましょう。 設定するにはテーブルの編集画面を開き、「関連オブジェクト」の欄のプルダウンから先ほど作成したジョブフローを選択し、「保存」をクリックします。 (本記事ではジョブ名を「関連ジョブ」としております)   関連オブジェクトの指定   設定保存後、テーブル内の機器情報を選択し、「その他」→「ジョブフローの実行」 をクリックします。   オブジェクトの選択実行   実行対象オブジェクトの確認画面が開きますので、「実行」をクリックします。   確認ダイアログ   以上の手順によりジョブフローが実行され、ジョブフローの動作確認時と同様の内容が表示されます。   実行結果     応用例 本記事の内容を利用すると、機器に対するオペレーションをテーブル上から簡単に実行することが可能となります。 例えば、テーブル上で選択した機器に対してパッケージアップデートを実施できるようにするには、次のようなジョブフローを関連オブジェクトとして登録します。 (Red Hat系のOS向けの例となります)  
| servers |

{for sv in servers |
  [ __node__ = sv , __sudo__ = true] -> 
  ["yum -y update"]
}

スタートガイド

Kompiraジョブフローの基礎

ジョブフローの簡単な例

Kompiraの機能

外部との連携