運用管理ソフトウェア「Hinemos」を使ってみる！！part7 ～ジョブ機能～

# 1.はじめに
Hinemosにおけるジョブの設定をしていきます。

これまでのHinemosに関する投稿は以下のリンクから飛んでください。
[運用管理ソフトウェア「Hinemos」を使ってみる！！part1 ～はじめに～](https://qiita.com/takuyasuzuki9/items/426be12d59366e64c5d2)

# 2.Hinemosにおけるジョブ機能
Hinemosのジョブは以下の3つから構成される。

|種類|説明|
|---|---|
|ジョブユニット|一番でかい集合|
|ジョブネット|ジョブユニット内に作成する集合|
|コマンドジョブ|ジョブネット内に作成する一番小さなジョブ単位|

ちなみに、ジョブネットの作成は任意。「ジョブユニット」配下に「コマンドジョブ」を配置することも可能。
# 3.ジョブ設定
ここからジョブの設定です。
## 単一ジョブ
まずは、シンプルな単一ジョブを動かします。
[パースペクティブ]-[ジョブ設定]を押下して、以下の画面を表示させる。
![000031.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/dee94104-683c-4a76-5deb-9c07531810fb.jpeg)
ジョブユニットを作成します。
[マネージャ(マネージャ1)]を右クリックして、[ジョブユニットの作成]を押下。
![000032.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/525501d6-1ea5-3c2d-bb7d-5297ab2d0508.jpeg)
[ジョブID]：一意のIDを記載します。（今回は"jobunit01"）
[ジョブ名]：任意のジョブ名を記載します。(今回は"ジョブユニット01")
そして[OK]を押下。
![000050.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/bba0b3ee-3516-8761-58d2-90e8210fb551.jpeg)
次に、ジョブネットを作成します。
作成した[ジョブユニット01(jobunit01)]を右クリックして、[ジョブネットの作成]を押下。
![000035.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/a9f25ff1-480f-6587-7480-810b4983edf0.jpeg)
[ジョブID]：一意のIDを記載します。（今回は"jobnet001"）
[ジョブ名]：任意のジョブ名を記載します。(今回は"ジョブネット001")
そして[OK]を押下。
![000037.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/3bc3766e-19f5-0d16-1fa6-77709b0656cc.jpeg)
次に、実際に動かすコマンドジョブを作成します。
作成した[ジョブネット001(jobnet001)]を右クリックして、[コマンドジョブの作成]を押下。
![000051.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/750c444f-3ef9-3171-ca0b-ff395bab0d80.jpeg)
[ジョブID]：一意のIDを記載します。（今回は"job001"）
[ジョブ名]：任意のジョブ名を記載します。(今回は"ジョブ001")
![000038.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/857f6434-e59c-a9d9-502e-650cc62abba4.jpeg)
実行する対象のエージェントを指定します。
[コマンド]タブの[スコープ]の右側の[参照]を押下。
![000039.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/b334630d-000a-a3c9-46bc-fd7a3832a97c.jpeg)
[エージェント01]を指定。
![000040.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/da746958-ae0b-3da4-304e-5add9c09eeda.jpeg)
[起動コマンド]にエージェントで実行するコマンドを記載します。
もちろん、シェルを指定してもOK。
今回は、標準出力に日時＆ファイルに書き出すコマンドを実行します。
（ログのネーミングセンスはひどいですね。。）
実行ユーザを"エージェント起動ユーザ"から帰る場合は、"ユーザを指定する"に記載します。
![000041.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/a94e50d7-f5e9-25cc-aa06-362ae853b233.jpeg)
設定したら、[OK]を押下。
![000041.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/e42a42eb-f5f3-21e3-033c-abf5ccbdfba4.jpeg)
こんな感じで登録されればOK！
※ただし、自動で反映してくれないので、ジョブ設定したら、明示的に保存する必要があります。
ctrl+sを押下する。
![000042.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/c264626c-9b52-f92f-a743-fe771b171719.jpeg)
[Yes]を押下。
![000043.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/1dafabbb-71bf-203f-b6ac-10704372228a.jpeg)
[OK]を押下。
![000044.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/f0540a73-2298-be82-dda6-b0a4e99e036d.jpeg)
では、早速実行してみましょう。
![000046.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/efd74791-0c0c-a2ad-c389-ae3390ce6610.jpeg)
[ジョブユニット01(jobunit01)]を右クリックして、[実行]を押下。
![000048.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/2effc5d7-40cb-606d-3145-ae2fb10916f8.jpeg)
「ほんとに実行しちゃうけどいいの？」って聞いてくれます。（ありがたい）
問題なければ、[実行]を押下。
![000045.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/9dc9a5db-6ecc-eef8-3e7b-c01e22a8d5f0.jpeg)
では、実行したジョブの結果を確認します。
ジョブ実行した画面では、確認できない。。ちと面倒。
[パースペクティブ]-[ジョブ履歴]を押下。
[ジョブ履歴[一覧]]の"終了状態"が"正常"ならOK!
![000052.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/f8219115-2287-37c5-5a59-7f953a36f4e2.jpeg)
また、一番したの[ジョブ履歴[ノード詳細]]のメッセージを見ると、標準出力のメッセージが出力されています。
![000047.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/b053693c-b67d-019a-957a-65d52ca06288.jpeg)
さらに、agentの/tmp/log.logを確認すると、ちゃんとhostnameが出力されています。
（一安心です。）
![000049.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/1367cecf-6bbc-6aa6-ada9-8d7d0159275b.jpeg)
## コマンドジョブ連携
「Aコマンドジョブが終了したら、Bコマンドジョブを実行する」みたいなジョブネットを作成します。
さきほどの続きで、[ジョブネット001]を右クリックし、[コマンドジョブの作成]を押下。
![000054.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/9c7b9c8f-918c-6621-d9c2-57b5253b8245.jpeg)
以下のようにジョブの設定をします。このあたりは、単一ジョブと同じ。
![000083.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/adf90969-73ff-2fb1-68ab-1a238614a969.jpeg)
次の設定が重要。
[待ち条件]タブにおいて、[判定対象]-[追加]を押下。
![000056.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/937a7a96-3774-40db-7cd1-342b1903f4ec.jpeg)
[ジョブID]を押下します。
![000057.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/43b2ef48-453b-c000-bdee-38053cd71f76.jpeg)
ここに、job002の前のジョブを設定します。今回は"job001"。
次に値を入れます。
![000058.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/82dba342-eec6-6fce-f902-a39572469f83.jpeg)
値は、「正常」「警告」「異常」「(アスタリスク)」が選択できます。
「正常/警告/異常」・・・前のジョブが正常/警告/異常終了だったら、後続ジョブを実行する。
「(アスタリスク)」・・・前のジョブがどんな結果であっても後続ジョブを実行する。
![000059.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/adefc546-a742-7e78-edbd-a52a96776ead.jpeg)
今回は正常終了にします。
![000060.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/8aa97c78-04f7-073c-2601-bbc813610b36.jpeg)
設定内容を確認したら、[OK]を押下。
![000061.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/6c779936-bab0-77b2-10b2-0a721377c0ff.jpeg)
ここでも、ジョブ定義を変更したので、ctrl+sで登録。
![000062.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/fba29107-6fd7-1868-b6d6-4e957bfce791.jpeg)
![000064.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/9d225403-a1af-8396-28ac-df08586ab2d0.jpeg)
では、実行しましょう。[ジョブユニット01]を右クリックして、[実行]を押下。
![000065.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/4e685ffd-e010-4e0c-149a-139ed753cd29.jpeg)
[実行]を押下。
![000066.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/9d6b20f2-a55e-814f-81fe-b2e57fc86669.jpeg)
では、実行結果を確認しましょう。手順は単一ジョブと同じです。
ジョブユニット、ジョブネット、コマンドジョブが全て正常終了していればOKです。
![000069.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532143/b304046f-c11c-5ae7-c5f0-f45042b51b65.jpeg)
# 4.さいごに
今回は、基本的なジョブの定義方法をご紹介しました。
今後も様々なジョブ定義について、紹介していきたいと思います。