1.はじめに
Hinemosにおけるジョブの設定をしていきます。
これまでのHinemosに関する投稿は以下のリンクから飛んでください。
運用管理ソフトウェア「Hinemos」を使ってみる!!part1 ~はじめに~
2.Hinemosにおけるジョブ機能
Hinemosのジョブは以下の3つから構成される。
種類 | 説明 |
---|---|
ジョブユニット | 一番でかい集合 |
ジョブネット | ジョブユニット内に作成する集合 |
コマンドジョブ | ジョブネット内に作成する一番小さなジョブ単位 |
ちなみに、ジョブネットの作成は任意。「ジョブユニット」配下に「コマンドジョブ」を配置することも可能。
3.ジョブ設定
ここからジョブの設定です。
単一ジョブ
まずは、シンプルな単一ジョブを動かします。
[パースペクティブ]-[ジョブ設定]を押下して、以下の画面を表示させる。
ジョブユニットを作成します。
[マネージャ(マネージャ1)]を右クリックして、[ジョブユニットの作成]を押下。
[ジョブID]:一意のIDを記載します。(今回は"jobunit01")
[ジョブ名]:任意のジョブ名を記載します。(今回は"ジョブユニット01")
そして[OK]を押下。
次に、ジョブネットを作成します。
作成した[ジョブユニット01(jobunit01)]を右クリックして、[ジョブネットの作成]を押下。
[ジョブID]:一意のIDを記載します。(今回は"jobnet001")
[ジョブ名]:任意のジョブ名を記載します。(今回は"ジョブネット001")
そして[OK]を押下。
次に、実際に動かすコマンドジョブを作成します。
作成した[ジョブネット001(jobnet001)]を右クリックして、[コマンドジョブの作成]を押下。
[ジョブID]:一意のIDを記載します。(今回は"job001")
[ジョブ名]:任意のジョブ名を記載します。(今回は"ジョブ001")
実行する対象のエージェントを指定します。
[コマンド]タブの[スコープ]の右側の[参照]を押下。
[エージェント01]を指定。
[起動コマンド]にエージェントで実行するコマンドを記載します。
もちろん、シェルを指定してもOK。
今回は、標準出力に日時&ファイルに書き出すコマンドを実行します。
(ログのネーミングセンスはひどいですね。。)
実行ユーザを"エージェント起動ユーザ"から帰る場合は、"ユーザを指定する"に記載します。
設定したら、[OK]を押下。
こんな感じで登録されればOK!
※ただし、自動で反映してくれないので、ジョブ設定したら、明示的に保存する必要があります。
ctrl+sを押下する。
[Yes]を押下。
[OK]を押下。
では、早速実行してみましょう。
[ジョブユニット01(jobunit01)]を右クリックして、[実行]を押下。
「ほんとに実行しちゃうけどいいの?」って聞いてくれます。(ありがたい)
問題なければ、[実行]を押下。
では、実行したジョブの結果を確認します。
ジョブ実行した画面では、確認できない。。ちと面倒。
[パースペクティブ]-[ジョブ履歴]を押下。
[ジョブ履歴[一覧]]の"終了状態"が"正常"ならOK!
また、一番したの[ジョブ履歴[ノード詳細]]のメッセージを見ると、標準出力のメッセージが出力されています。
さらに、agentの/tmp/log.logを確認すると、ちゃんとhostnameが出力されています。
(一安心です。)
コマンドジョブ連携
「Aコマンドジョブが終了したら、Bコマンドジョブを実行する」みたいなジョブネットを作成します。
さきほどの続きで、[ジョブネット001]を右クリックし、[コマンドジョブの作成]を押下。
以下のようにジョブの設定をします。このあたりは、単一ジョブと同じ。
次の設定が重要。
[待ち条件]タブにおいて、[判定対象]-[追加]を押下。
[ジョブID]を押下します。
ここに、job002の前のジョブを設定します。今回は"job001"。
次に値を入れます。
値は、「正常」「警告」「異常」「(アスタリスク)」が選択できます。
「正常/警告/異常」・・・前のジョブが正常/警告/異常終了だったら、後続ジョブを実行する。
「(アスタリスク)」・・・前のジョブがどんな結果であっても後続ジョブを実行する。
今回は正常終了にします。
設定内容を確認したら、[OK]を押下。
ここでも、ジョブ定義を変更したので、ctrl+sで登録。
では、実行しましょう。[ジョブユニット01]を右クリックして、[実行]を押下。
[実行]を押下。
では、実行結果を確認しましょう。手順は単一ジョブと同じです。
ジョブユニット、ジョブネット、コマンドジョブが全て正常終了していればOKです。
4.さいごに
今回は、基本的なジョブの定義方法をご紹介しました。
今後も様々なジョブ定義について、紹介していきたいと思います。