概要
JobScheduler 2.3.0 新規セットアップおよび2.2.3 から 2.3.0 アップデートでつまづいた箇所の対応。
今後のマイナーアップデート時も同様の事象があるかもしれないので、メモを残す。
※この記事を見る人は、JS7の操作に慣れているかと思いますので、ざっくりとした箇条書きのみです。
ver. 2.3.1 では、ここで記載した問題はありません。
特別な事情がない限り、2.3.0ではなく、2.3.1 (もしくはそれ以降)をお勧めします。
おおまかな実施手順
アップデート後、Agentの起動できない
通常は、下記ディレクトリ以下のみ削除し、上書きインストールだったが、これではAgentがうまく起動できなかった。
{ JS7_CONTROLLER_HOME }/lib/*
{ JS7_AGENT_HOME }/lib/*
{ JS7_AGENT_HOME }/yade/lib/*
追加で、下記ディレクトリ以下を削除することで、Agentの正常起動を確認した。
{ JS7_CONTROLLER_DATA }/state/*
{ JS7_AGENT_DATA }/state/*
WorkFlow実行がblockedとなる
JOC 2.3.0 の管理画面にて、Manage Controllers and Agents にてDeploy実施後、Agentの疎通を確認したが、WorkFlowを実行しても、blockedとなり、処理が進まなかった。
agent, controller のサービス停止後、下記ディレクトリ以下を再度削除。
{ JS7_CONTROLLER_DATA }/state/*
{ JS7_AGENT_DATA }/state/*
agent,controller を起動し、joc サービスを再起動。
もっとシンプルな対応方法が確認できました。
- Manage Controllers and Agents にて、該当Agentをdisableにする
- 再度 enable に戻す
- reset をする(state 以下を削除+サービス再起動と同じ)
これでWorkFlowが実行できることを確認。
この対応は、Ver 2.3.0 新規セットアップ時でも同様
このバグは、Ver 2.3.1 で修正される見込みです
https://change.sos-berlin.com/browse/JS-1990?src=confmacro
docker-compose 環境での対応例
下記手順で2.2.3 で構築した環境を 2.3.0 に更新を行う場合の手順です。
JS7® JobScheduler docker-compose で起動
# もし稼働中の場合は一旦停止
docker-compose stop
# controller, agent の state 以下を削除
sudo rm -rf js7-controller-primary/state/*
sudo rm -rf js7-agent-primary/state/*
# .env を 2.3.0 用に書き換え
echo -e "JS7USERID=$(id -u)\nJS7GROUPID=$(id -g)\nJS7VERSION=2-3-0" > .env
# joc,controllr,agent とも起動したことを確認
docker-compose up -d
docker-compose ps
# (db変更反映のため?)上書きインストール実行
docker-compose exec js7-joc-primary /bin/sh -c /opt/sos-berlin.com/js7/joc/install/joc_install_tables.sh
docker-compose restart js7-joc-primary
# joc にログインし、controller/agent管理画面にて、agent を deploy してください。
# そのあと、該当agentを disable → enable → reset と操作してください。
# 操作は省略
以上で終了です。
Inventory (WorkFlow等の設定)を再度Deployしなおし、WorkFlowが実行できることを確認してください。
sosberlin/js7:agent-2-3-0-plus イメージ( PowerShell, JS7 module 追加版)は うまく起動できないようです。
2022/4/29時点の最新イメージで起動できることを確認しました
CentOS 7 での対応例
CentOS 7 での構築環境での対応例です。
前提条件
下記の環境を前提しています。
- controller サービス名 :
js7controller.service
- { JS7_CONTROLLER_DATA } :
/opt/sos-berlin.com/js7/controller/var
- agent サービス名 :
js7agent_4445.service
- { JS7_AGENT_DATA } :
/opt/sos-berlin.com/js7/agent/var_4445/
サービス名やディレクトリなどは、環境に応じて読み替えてください。
Agent起動対応
通常通りのアップデート手順では、Agent が起動しない。
そのため追加対応を行う。(アップデート対応時の 旧lib 削除時と合わせて実行で可)
controller にて
sudo systemctl stop js7controller.service
sudo rm -rf /opt/sos-berlin.com/js7/controller/var/state/*
sudo systemctl start js7controller.service
agent にて
sudo systemctl stop js7agent_4445.service
sudo rm -rf /opt/sos-berlin.com/js7/agent/var_4445/state/*
sudo systemctl start js7agent_4445.service
joc にて
systemctl reststart joc.service
これでAgentの正常起動を確認した。
WorkFlow実行対応
- joc にログインし、controller/agent管理画面にて、agent の deploy を行う。
このままでは、Workflowを実行してもblocked となるため、追加で下記対応を行う。 - 該当Agentをdisableにする
- 再度 enable に戻す
- reset をする(state 以下を削除+サービス再起動と同じ)
これでWorkFlowが実行できることは確認できました。