Hinemos ManagerからJob実行してみる

こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。

前回、前々回とHinemos Manager(Web)とAgentを用意しました。
今回は、ManagerからAgentに対してコマンドジョブを実行してみたいと思います。

https://qiita.com/ohtsuka-shota/items/14030873e3dee3568648

https://qiita.com/ohtsuka-shota/items/df821379736d7576e31c

# 手順
HinemosのWebコンソールにログインします。
ログイン後、パースペクティブからリポジトリを選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/f6c92a22-6b17-4428-9e78-2b32e046fc92.png)

リポジトリ（ノード）の適当なところで右クリックして、Createを押下。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/60cc9a35-22e0-4b0f-afbd-4c178f0295c4.png)

AgentのIPアドレスを入力して、Searchボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/02c2d934-d397-442a-9f92-8c7a8e72562f.png)

snmpdが正常に稼働していれば、自動で項目が入力されます。
この状態でregisterボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/c9f9dd5a-ba72-47cf-b72d-602e9a4bd83c.png)

一覧に表示されることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/800dd54b-689c-46c4-ada1-f0fcf6bab730.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/e4a248ce-7cee-4022-9ec8-df7fe1188a80.png)

Managerの/etc/hostsにこのノードを登録します。
```
[root@hinemos ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.1.1 hinemos hinemos
192.168.0.131 hinemos-agent
```

※しなくてもいけるかもですが、/opt/hinemos/var/log/hinemos_manager.logで"ノード名" is not valid的なメッセージが出てきたので、一応追加してます。
```
2025-04-29 08:16:00,072 INFO  [com.clustercontrol.hinemosagent.util.AgentConnectUtil] (HinemosScheduler-ram-job-worker-6) setTopic(0, test-commandjob) : agent01 is not valid
```

パースペクティブからジョブセッティングを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/7efeb3d3-b2b1-4e9d-afe8-4494adb0c33c.png)

Managerを右クリックして、ジョブユニットの作成を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/c99fab4d-e034-4b16-95c3-25e070ae8be5.png)
test-jobunitという名前で作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/8b98da7f-0a86-44ce-afd0-a5b45baf4c6f.png)

作成したジョブユニットを右クリックして、ジョブネットの作成を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/eb8082f3-59e4-4fbf-bf82-dd01b714d1b9.png)
test-jobnetという名前で作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/8fccc5d4-f026-43a2-8993-7f3243179f5a.png)

作成したジョブネットを右クリックして、コマンドジョブの作成を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/2a26bb3c-4a17-4eb5-b24c-91bb3dee3ea5.png)
test-commandjobという名前で作成します。
コマンドの内容は/tmpフォルダ配下にcommand_test.txtというファイルを作成するというものにしています。
ここで、どのエージェントで実行するのかという事も決めているのですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/13c671d0-4694-4f1d-8e82-60d70a2ed71c.png)
OKを押下した後、ctrl + sで保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/fefee416-2833-4281-bf0f-0969b8065eb4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/9e0c6e08-59c2-4b5e-8739-37c83e244edd.png)

実行していきます。
ジョブユニットを右クリックしてRunを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/b04d8b11-5899-46c2-91e9-47526f9b154c.png)
Runを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/5cc8f31c-6cf9-49d8-b8d9-724257b1a199.png)

実行結果を確認します。
パースペクティブからジョブヒストリーを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/821de646-a94f-4a34-b86d-48b436a62855.png)
End StatusがNormalとなっていれば正常終了したことになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/6c2a563c-afb5-49a4-9873-b9586c3fd334.png)

Agent側の/tmp配下を見てみます。
確かにファイルが作成されていることがわかりました。
正常に実行されていますね。
```
[root@hinemos-agent conf]# cd /tmp/
[root@hinemos-agent tmp]# ls
hinemos_test.txt  systemd-private-cef8268b38e747a0b4ae7a0936edc0d3-chronyd.service-ND9U6i
hsperfdata_root   vagrant-shell
```