メインコンテンツまでスキップ

dockerinstaller케이스별_시나리오

0. 共通確認項目 (すべてのケース共通)​

確認項目期待動作確認必要
Docker未インストール時に実行xmError(501)出力後終了✅
Dockerデーモン未起動時に実行xmError(502)出力後終了✅
./start.sh実行exemone-kafka-agentコンテナが起動される✅
./stop.sh実行exemone-kafka-agentコンテナが終了される✅
cfg/ディレクトリowner1200:1200 (コンテナユーザー)✅
log/ディレクトリ権限777 (コンテナ書き込み可能)✅
備考

⚠️ v3.0.23.3-2対比変更

  • コンテナ名変更: exem-kafka-agent → exemone-kafka-agent
  • イメージ名変更: maxgauge/exem-kafka-agent → maxgauge/exemone-kafka-agent
  • RECEIVER_IPにhostname/FQDNを許可(以前はIPのみ許可)
  • Legacy環境サポート - Legacy環境検知/拒否分岐を追加
  • cfg/.env: KAFKA_GROUP_ID削除、KAFKA_AGENT_INSTALL_USER追加

1. Unpack (2番選択)​

  • 事前条件: exem/ディレクトリがない状態
  • 実行: .bin実行 → 2番(unpack)選択
  • 期待ログ:
Unpack completed
UNPACK_DIR={실행경로}/exem/kafka
xmSuccess(0): unpack completed
確認項目期待動作確認必要
exem/kafka/生成生成される✅
start.sh, stop.sh存在✅
lib/exemone-kafka-agent-v*.tar.gz存在 (Dockerイメージファイル)✅
Dockerイメージロード有無ロードされない (unpackのみ実行)✅
備考

⚠️ v3.0.23.3-2対比変更

  • 抽出パス変更: {실행경로}/exemone-kafka-agent → {실행경로}/exem/kafka

2. 新規インストール — Interactive (1番選択)​

  • 事前条件: exem/ディレクトリがない状態、$EXEMONE_HOME未設定
  • 実行: .bin実行 → 1番 → EXEM_HOME Enter(デフォルト値) → RECEIVER_IP入力 → 残りEnter
  • 期待ログ:
Installation completed
AGENT_VERSION=...
PKG_VERSION=...
INSTALL_DIR={실행경로}/exem/kafka
RECEIVER_ADDR=...
IMAGE=maxgauge/exemone-kafka-agent:v...
To start: {실행경로}/exem/kafka/start.sh
xmSuccess(0): installation completed
確認項目期待動作確認必要
Dockerイメージロードされるdocker imagesで確認可能✅
インストール位置{실행경로}/exem/kafka✅
start.sh, stop.sh存在✅
cfg/.env生成される (RECEIVER_ADDR、VERSIONなど含む)✅
exem-docker-installer-tmp/残っていない✅
RECEIVER_IPにhostname入力 (例: receiver)正常に処理される✅

変形: インストール中にexemone-kafka-agentコンテナが既に実行中の場合

確認項目期待動作確認必要
コンテナ自動終了有無終了しない✅
完了メッセージ"Container is currently running"案内 + To apply出力✅
備考

⚠️ v3.0.23.3-2対比変更

  • 既存コンテナ自動stop/rm削除 - 以前は自動削除を試みたが、コンテナ名が異なり正常動作しなかった

3. 新規インストール — Config mode​

  • 実行: ./docker-installer.bin config.env
  • config.env例:
INSTALL_DIR=/opt/exem
RECEIVER_IP=10.20.30.40
RECEIVER_PORT=9009
確認項目期待動作確認必要
対話形式入力なしでインストール完了確認✅
INSTALL_DIRキーインストールパスとして認識される✅
RECEIVER_PORT未指定時デフォルト値9009適用✅
EXEM_AGENT_NAME未指定時デフォルト値kafka-agent適用✅
RECEIVER_IP未指定時xmError(505)出力後終了✅
RECEIVER_IPにhostname指定 (例: receiver)正常に処理される✅
備考

⚠️ v3.0.23.3-2対比変更

  • Configキー変更: INSTALL_PATH → INSTALL_DIR

4. Standaloneパッチ — Interactive (1番選択、既存インストールあり)​

  • 事前条件: exem/kafka/に既存インストールあり、$EXEMONE_HOME未設定
  • 実行: 同じパスで.bin実行 → 1番 → EXEM_HOME Enter → Patch it? Enter → 既存値維持Enter
  • 期待ログ:
Existing installation found. Running patch...
Existing version:
agent : x.x.x
package : x.x.x
New version:
agent : x.x.x
package : x.x.x
...
Patch completed (agent not started)
xmSuccess(0): patch completed
確認項目期待動作確認必要
置換される項目
Dockerイメージ新バージョンに置換される✅
既存イメージ削除される (イメージIDが異なる場合)✅
start.sh, stop.sh新バージョンに置換される✅
cfg/kafka.conf新バージョンに置換される✅
cfg/cfg.reload新バージョンに置換される✅
cfg/.envRECEIVER_ADDR、VERSIONなど更新される✅
lib/新バージョンに置換される✅
維持される項目
log/既存維持✅
コンテナ自動終了有無終了しない✅
整理
exem-docker-installer-tmp/残っていない✅

変形: コンテナ実行中の場合

確認項目期待動作確認必要
コンテナ自動終了有無終了しない✅
完了メッセージ"Container is currently running with the old version"案内 + To apply出力✅
備考

⚠️ v3.0.23.3-2対比変更

  • バージョン出力詳細化: Existing version: x.x.x → agent/package分離出力
  • 完了メッセージ: OLD_VERSION / NEW_VERSION → OLD_AGENT_VERSION / OLD_PKG_VERSION / NEW_AGENT_VERSION / NEW_PKG_VERSION

5. Standaloneパッチ — Config mode​

  • 実行: ./docker-installer.bin config.env
  • config.env例:
INSTALL_DIR=/opt/exem
RECEIVER_IP=10.20.30.40
確認項目期待動作確認必要
対話形式入力なしでパッチ完了確認✅
RECEIVER_IP未指定時既存のcfg/.env値をそのまま維持✅
RECEIVER_IP指定時cfg/.envに新しい値が反映される✅
残りの動作4番(Standaloneパッチ)と同一✅
備考

⚠️ v3.0.23.3-2対比変更

  • 4番(Standaloneパッチ Interactive)と同一

6. Legacy環境パッチ — Interactive​

  • 事前条件: $EXEMONE_HOME=/opt/exemone、$EXEMONE_HOME/containers/exemone-kafka-agentディレクトリ存在
  • 実行: .bin実行 → 1番 → Y選択 → Patch it? Enter → 既存値維持Enter
  • 期待ログ:
exemone-package environment detected. (EXEMONE_HOME: /opt/exemone)
Install to exemone-package environment? [Y/n]: Y
KAFKA_HOME: /opt/exemone/containers/exemone-kafka-agent
Existing installation found. Running patch...
...
Image tagged for legacy environment: maxgauge/exemone-kafka-agent:{VERSION}
...
Patch completed (agent not started)
To apply: cd $EXEMONE_HOME && ./scripts/restart.sh kafka-agent
xmSuccess(0): patch completed
確認項目期待動作確認必要
KAFKA_HOME$EXEMONE_HOME/containers/exemone-kafka-agent固定✅
既存設定読み込みkafka.confのRECEIVER_ADDRから読み込む✅
イメージタグv prefixなしのタグでre-taggingされる✅
$EXEMONE_HOME/.env更新KAFKA_AGENT_VERSION、KAFKA_AGENT_IMAGEが更新される✅
kafka.conf上書きしない (既存設定保存)✅
cfg.reload新バージョンに置換される✅
cfg/log所有権$EXEMONE_HOME/.envのUID/GID基準でchown (なければ1200:1200)✅
再起動案内./scripts/restart.sh kafka-agent案内出力✅

7. Legacy環境パッチ — Config mode​

  • 事前条件: $EXEMONE_HOME設定済み、containers/exemone-kafka-agent存在
  • 実行: ./docker-installer.bin config.env (config.envに値がない、または一部のみ指定)
確認項目期待動作確認必要
対話形式入力なしでパッチ完了確認✅
RECEIVER_IP未指定時kafka.confの既存値維持✅
RECEIVER_IP指定時cfg/.envに新しい値が反映される✅
残りの動作6番(Legacyパッチ)と同一✅

8. Legacy環境検知 → 拒否(n選択) → 新規インストール​

  • 事前条件: $EXEMONE_HOME設定済み、新規インストール対象パスがない
  • 実行: .bin実行 → 1番 → n選択 → EXEM_HOME入力 → 新規インストール進行
  • 期待ログ:
exemone-package environment detected. (EXEMONE_HOME: /opt/exemone)
Install to exemone-package environment? [Y/n]: n
Enter EXEM_HOME [/home/admin/exem]: ...
確認項目期待動作確認必要
Legacy環境を無視してstandalone新規インストール進行確認✅
残りの動作2番(新規インストール)と同一✅

9. Legacy環境検知 → 拒否(n選択) → Standaloneパッチ​

  • 事前条件: $EXEMONE_HOME設定済み、別途standaloneインストールも存在
  • 実行: .bin実行 → 1番 → n選択 → EXEM_HOMEに既存standaloneパスを入力
  • 期待ログ:
exemone-package environment detected. (EXEMONE_HOME: /opt/exemone)
Install to exemone-package environment? [Y/n]: n
Enter EXEM_HOME [/home/admin/exem]: /data/exem
Existing installation found at /data/exem/kafka. Patch it? [Y]: ...
確認項目期待動作確認必要
Legacy環境を無視してstandaloneパッチ進行確認✅
残りの動作4番(Standaloneパッチ)と同一✅

10. エラーケース​

状況期待出力確認必要
Docker未インストールxmError(501): Docker is not installed. Please install Docker first.✅
Dockerデーモン未起動xmError(502): Docker daemon is not running. Please start Docker first.✅
パッケージ破損 (バージョン情報なし)xmError(503): version information not found in package✅
イメージファイルなしxmError(504): Docker image file not found: ...✅
イメージロード失敗xmError(504): Docker image load failed✅
Config mode — RECEIVER_IP未指定xmError(505): RECEIVER_IP is required in config file✅
Config mode — RECEIVER_IP形式エラーxmError(505): Invalid RECEIVER_IP format (e.g., 127.0.0.1 or receiver)✅
Config mode — RECEIVER_PORT範囲エラーxmError(505): Invalid RECEIVER_PORT (must be 1-65535)✅
インストールディレクトリ生成失敗xmError(505): failed to create install directory ...✅
ファイルコピー失敗xmError(505): failed to copy files to ...✅
パッケージ抽出失敗 (tar破損)xmError(506): unpack failed✅
メニューの誤った入力xmError(500): invalid option selected✅
3番(exit)選択xmError(509): exit requested by user✅
コンテナ削除失敗 (start.sh)xmError(103)✅
コンテナ生成失敗 (start.sh)xmError(106)✅
コンテナ停止失敗 (stop.sh)xmError(200)✅
備考

⚠️ v3.0.23.3-2対比変更

  • xmError(502)新規: Dockerデーモン未起動エラー (以前はこのチェックがなかった)
  • xmError(506)新規: unpack失敗エラーコード変更 (以前はxmError(502)だった)
  • xmError(505) RECEIVER_IP形式エラーメッセージ変更: hostnameも許可するよう案内文を修正