JobScheduler 2.2.3 → 2.3.0 アップデート時のメモ

# 概要

JobScheduler 2.3.0 新規セットアップおよび2.2.3 から 2.3.0 アップデートでつまづいた箇所の対応。
今後のマイナーアップデート時も同様の事象があるかもしれないので、メモを残す。

※この記事を見る人は、JS7の操作に慣れているかと思いますので、ざっくりとした箇条書きのみです。

:::note
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が実行できることを確認。

:::note warn
この対応は、Ver 2.3.0 新規セットアップ時でも同様
:::
:::note
このバグは、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 で起動](https://qiita.com/saitamanokusa/items/ffb8f05cbc8e75d435ce#%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E8%B5%B7%E5%8B%95)

```shell
# もし稼働中の場合は一旦停止
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が実行できることを確認してください。

:::note warn
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 にて

```shell
sudo systemctl stop js7controller.service
sudo rm -rf /opt/sos-berlin.com/js7/controller/var/state/*
sudo systemctl start js7controller.service
```

agent にて

```shell
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 にて

```shell
systemctl reststart joc.service
```

これでAgentの正常起動を確認した。

## WorkFlow実行対応

- joc にログインし、controller/agent管理画面にて、agent の deploy を行う。
このままでは、Workflowを実行してもblocked となるため、追加で下記対応を行う。
- 該当Agentをdisableにする
- 再度 enable に戻す
- reset をする（state 以下を削除＋サービス再起動と同じ）



これでWorkFlowが実行できることは確認できました。