お金をかけずにサーバーの勉強をしよう

JS7インストール 5

2024年9月20日
メニューへ戻る

JS7インストール 1」では JS7 Controllerのサーバーを作り、
JS7インストール 2」では JS7 Universal Agentをインストールし、
JS7インストール 3」では PostgreSQLのデータベースサーバーを作って、JS7 JOC Cockpitのインストールをし、
JS7インストール 4」では JS7 JOC Cockpitの WEB画面でユーザー作成など行いました。

ここまできてやっとジョブを作るって作業に入れます。

WEBブラウザを使って、(私の環境では) [http://js7cockpit:4446] にアクセスし、JS7の [subro]ユーザーでログインしているところから開始します。

こんな画面になっているはずです。
JS7ダッシュボード


1.ワークフローとジョブの作成

まずは個々のジョブを繋げた処理フローを入れるための枠であるワークフローを作成します。

画面上にアイコンが並んでいる中から [ジョブ定義] をクリックします。
ワークフロー作成 1

画面左側はこんな絵になっているので、[インベントリー]タブの中の [フォルダー]タブの中のツリーにある [コントローラー] の左にある […] をクリックします。
ワークフロー作成 2

メニューが出てきますので、[新規] - [新規ワークフロー] と選択します。
ワークフロー作成 3

ワークフローの名前を適当に入れ、登録を押します。
ワークフロー作成 4

こんな画面になります。
赤枠内がビジュアル的に処理フローを描けるところになります。
ワークフロー作成 5

[J] マークのアイコン(ジョブ)をマウスでドラッグして、[ここにドラッグアンドドロップ] と描いてある点線枠にドロップします。
ここで大事なのは、ドラッグされてきたアイコンを点線枠におくのではなく、マウスカーソルを点線枠に合わせるということ。
(私はちょっとハマりました)
ワークフロー作成 6

画面右にはこのようにジョブのプロパティを入力する場所が出てきますので、[ジョブプロパティ]タブを選んで、以下のようにジョブを作りました。

名称ジョブの絵の中に入る名前
ラベル同じ名称のジョブがある場合にシステム内で区別するためのもの。
タイトルジョブの絵の下に出てくる名前
エージェントジョブ実行先のサーバー
プルダウンから選択できる
リターンコードこの絵では echoコマンドを実行した時のリターンコードが
0 の時をジョブの正常終了としています。
ラジをボタンの [失敗] を選んで異常終了時のリターンゴードを
書くこともできそう。
ジョブクラスシェルコマンドの場合は [shell] になります。
他に [Java] とかあります。
[スクリプト]タブジョブクラスに [shell] を選んだらここにコマンドを書きます。

ワークフロー作成 7
このジョブは標準出力にメッセージを出すだけの機能ですが、実際にはシェルスクリプトを実行する事が多いのではないかと思います。

ジョブができたら、右上の配置を押します。
ワークフロー作成 8

登録を押します。
ワークフロー作成 9

画面左のツリーで、[テストのワークフロー] の左のに変わって、有効になっていることを表しています。
ワークフロー作成 10


2.カレンダー作成

jジョブを実行する日を決めるため、カレンダーを作ります。

なんでカレンダーなんて必要なの?って思うかも知れませんが、「『営業日』だけ実行したいジョブがある」って考えてみると理解できると思います。

日本では、GW前後・お盆・年末年始などに、普通のカレンダーとは違う休業日がある事業がいっぱいありますからね。

画面左のツリーから、[実行計画] の左にある […] をクリックします。
カレンダー作成 1

メニューが出てきますので、[新規] - [新規カレンダー] と選択します。
カレンダー作成 2

名前を適当に入れ、登録を押します。
カレンダー作成 3

こんな画面になりますので、+周期追加を押します。
カレンダー作成 4

今日(2024年9月20日)から 1年間、月〜金がジョブ実行日とするカレンダーです。
周期追加を押します。
カレンダー作成 5

「○月○日だけは土曜日だけど実行したい」なんてあれば、条件を追加できます。
閉じるを押します。
カレンダー作成 6

リリースを押します。
カレンダー作成 7

登録を押します。
カレンダー作成 8

[テストのカレンダー] の左のに変わって、有効になっていることを表しています。
カレンダー作成 9


3.スケジュール作成

ジョブ実行の具体的な時刻を決めて、カレンダーとの紐付けもします。

[スケジュール] の左にある […] をクリックします。
スケジュール作成 1

[新規] を選択します。
スケジュール作成 2

名前を適当に入れ、登録を押します。
スケジュール作成 3

ランタイムを押します。
スケジュール作成 4

画面右からこんなのがせり出してきます。
さっき作ったカレンダーを紐付けたいので、営業日カレンダを指定を押します。
スケジュール作成 5

作成したカレンダーをツリーから選択(チェックを入れる)し、保存を押します。
スケジュール作成 6

[開始時間] のところの [+] をクリックします。
スケジュール作成 7

開始時刻を設定します。
朝7時半に実行するようにしました。
保存を押します。
スケジュール作成 8

[×] をクリックして閉じます。
スケジュール作成 9

作成したワークフローを紐付けます。
[ワークフロー名] の入領域をクリックするとツリーからワークフローを選択できます。
スケジュール作成 10

リリースを押します。
スケジュール作成 11

登録を押します。
スケジュール作成 12

これで一通り設定できました。


4.ジョブの状態確認

画面上のアイコン群から [実行計画] をクリックします。
ジョブ状態確認 1

今実行が予定されているものが 1件あってこんな表示になります。
[オーダーID] が具体的な実行日時に付けられる一意の IDなんでしょう。
7時半が実行時刻なので、ちょっと待ちます。
ジョブ状態確認 2

7時半を過ぎると、表示がこのようになりました。
[ステート] が変わっています。
[オーダーID] がリンクになっていますので、クリックします。
ジョブ状態確認 3

行を選ぶと水色に反転します。
これをクリックします。
ジョブ状態確認 4

別ウィンドウで実行ログが表示されました。
ジョブで実行した echoコマンドの結果が出ていますね。\(^o^)/
ジョブ状態確認 5

めでたし、めでたし。


==========
色々といじくり回してやっとジョブのスケジュール実行ができました。

これだけの実験の過程でも、かなり色々な機能があることが推察できます。

ちょっと気になったのは GUIのとっつき難さで、時々?って思う箇所がいくつか。

また、これは JS7のお勉強が足りないせいなんですが、「リリース」と「登録」の違いが良く分からないとかありますね。

全体的な感想として、これだけ高機能だとやっぱりお勉強や慣れ、経験といったものが実運用には必要かなって思いました。

でもそれは JP1/AJSでも千手でも同じなんですけどね。


これで終わりにしようと思いましたが、もうちょっとだけ書こうかなって思っています。

JS7インストール 6」につづきます。