こんにちは!

助けが必要? 私たちはここにいます!

サポートアイコン
miniOrange メールサポート
成功

お問い合わせいただきありがとうございます。弊社のチームがすぐにご連絡させていただきます。

24時間以内に連絡がない場合は、お気軽にフォローアップメールをお送りください。 info@xecurify.com

検索結果:

×

miniOrangeオンプレミス環境でApache Tomcatをアップグレードする方法 IAM


このガイドでは、miniOrange On-Premise Identity Provider にバンドルされている Apache Tomcat エンジンをアップグレードする方法について説明します。 IAM ある 9.0.x リリースから別の 9.0.x リリースへのインストール (例) 9.0.108→9.0.120アプリケーションデータ、設定、カスタマイズを失うことなく、)


前提条件

Tomcatのアップグレードを開始する前に、以下の点を確認してください。

要件 Windows Linux
アクセス 管理者権限(管理者権限でのコマンドプロンプト実行) root または sudo アクセス
Tomcatパッケージ Apache Tomcat 9.0.x Windows zip 公式アーカイブ Apache Tomcat 9.0.x tar.gz 公式アーカイブ
メンテナンスウィンドウ 必須 — IDプロバイダーサービスが再起動し、一時的にEurekaから登録解除されます
ディスクスペース インストールディレクトリの完全バックアップに十分な空き容量が必要です。
従属的なサービス バックアップの前に miniOrange Redis と RabbitMQ を停止します (IAM バージョン4.9.3以降)
NEW - root権限でコピーした後の正しいファイル所有権


ステップ1:サービス構成を検出する

  • サービスを特定し、それがprocrunデーモンであることを確認します。
    sc qc miniorange
  • procrun レジストリ キーを探します。64 ビット Windows では、32 ビットで登録されたデーモンが WOW6432Node の下に存在します。両方のハイブを確認してください。
    # 1) reg query "HKLM\SOFTWARE\Apache Software Foundation\Procrun 2.0\miniorange\Parameters\Java"
    # 2) reg query "HKLM\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\miniorange\Parameters\Java"
  • 両方とも失敗した場合は、実際のキーパスを検索します。
    reg query "HKLM\SOFTWARE" /f "miniorange" /s /k
  • Javaサブキー(Jvm、Options、Options9、Classpath、JvmMs、JvmMx)の下にあるすべての値を記録します。 ログサブキーも記録してください。 (パス、プレフィックス、標準出力、標準エラー)— これはデーモン自身の標準出力/標準エラーのキャプチャを制御するもので、再登録時に失われやすい。
    reg query "HKLM\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\miniorange\Parameters\Log"

ステップ2: すべてをバックアップする

  • miniOrangeサービスを停止してください。
    net stop miniorange
  • バックアップフォルダを作成します。
    mkdir C:\Backups
  • IDプロバイダーのインストールディレクトリをアーカイブします。
    powershell -Command "Compress-Archive -Path 'C:\Program Files\miniOrange Identity Provider' -DestinationPath 'C:\Backups\moas_backup.zip'"
  • サービスレジストリ構成をエクスポートします。
    reg export "HKLM\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\miniorange" "C:\Backups\service_config.reg" /y

警告:
すべてのサービスを停止する miniOrange RedisとRabbitMQを含むバックアップ( IAM バージョン4.9.3以降)。


ステップ3:新バージョンを組み立てる

新しいTomcatをクリーンな状態で展開し、そこにアプリケーションを配置します。これにより、すべての新しいエンジンファイルが確実に存在するようになります。

  • 古い miniOrange Identity Provider (現在の作業ディレクトリ) の名前を別の名前に変更してください。
  • 新しいTomcatをminiOrangeと同じ作業場所に展開し、miniOrange Identity Providerに名前を変更します。
  • 古いディレクトリにあるconf\server.xmlファイルを、新しいApacheディレクトリに置き換えてください。
  • 現在のインストール環境から、アプリケーションとベンダー関連のファイル(logs、moas、services、temp、uninstall、work、license.txt、miniorange.icoファイル)を新しいフォルダに移動します。
  • 新しい bin\tomcat9.exe のコピーを bin\miniOrange.exe に作成します。
    copy "C:\Program Files\miniOrange Identity Provider\bin\tomcat9.exe" "C:\Program Files\miniOrange Identity Provider\bin\miniOrange.exe" /Y

注意:
最終的な経路を同一に保つ: レジストリにはインストールパスがテキストとして保存されます(catalina.home / catalina.base)。最終的なディレクトリ名とパスが元のものと完全に一致する場合、レジストリパスの編集は不要です。サービスは、同じ場所から新しいエンジンを起動するだけです。


ステップ4:サービスを再登録する

  • まず古い登録をアンインストールし、現在も存在するデーモンバイナリを使用してください。
    "<Old_InstallDir>\bin\miniorange.exe" //DS//miniorange
  • サービスが存在しないという報告があることを確認してください。
    sc query miniorange
  • 記録された正確な値を使用して再登録します ステップ 1 (ログパラメータは折り込まれているため、デーモンログキーは失われません。)
    "C:\Program Files\miniOrange Identity Provider\bin\miniorange.exe" //IS//miniorange ^
    --DisplayName="miniOrange Identity Provider" ^
    --Description="Identity Provider Authentication Server" ^
    --Install="C:\Program Files\miniOrange Identity Provider\bin\miniorange.exe" ^
    --Jvm="<path-to-jvm.dll>" ^
    --Classpath="C:\Program Files\miniOrange Identity Provider\bin\bootstrap.jar;C:\Program Files\miniOrange Identity Provider\bin\tomcat-juli.jar" ^
    --StartMode=jvm --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start ^
    --StartPath="C:\Program Files\miniOrange Identity Provider" ^
    --StopMode=jvm --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop ^
    --StopPath="C:\Program Files\miniOrange Identity Provider" ^
    --JvmOptions="-Dcatalina.home=C:\Program Files\miniOrange Identity Provider;-Dcatalina.base=C:\Program Files\miniOrange Identity Provider;-Djava.io.tmpdir=C:\Program Files\miniOrange Identity Provider\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=C:\Program Files\miniOrange Identity Provider\conf\logging.properties;-Dspring.profiles.active=redis" ^
    ++JvmOptions9="--add-opens=java.base/java.lang=ALL-UNNAMED;--add-opens=java.base/java.io=ALL-UNNAMED;--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED" ^
    --JvmMs=256 --JvmMx=1024 ^
    --LogPath="C:\Program Files\miniOrange Identity Provider\logs" --LogPrefix=commons-daemon ^
    --StdOutput=auto --StdError=auto ^
    --Startup=auto
  • ログオンアカウントを元のアカウント(通常はローカルサービス)と一致するように設定します。
    sc config miniorange obj= "NT AUTHORITY\LocalService" password= ""

注意:
警告など サービスユーザーにログパスへの書き込み権限を付与できませんでした… インストール中に発生するこの処理は無害です。これは、Tomcatやアプリケーションではなく、procrun自身の診断ログの保存場所に関するものです。


ステップ5:依存関係を開始し、次にサービスを開始します

Windowsサービスに移動し、すべてのサービスを開始します。miniOrangeサービスをすべて一覧表示し、実行中のサービスがあれば開始します。

miniOrangeサービスが開始されたことを示すWindowsサービス

powershell -Command "Get-Service | Where-Object {$_.DisplayName -like '*miniOrange*'} | Format-Table Name, Status, StartType -AutoSize"

ステップ6:確認

  • コンテナログにあるTomcatのバージョンバナーを確認してください。これはTomcat自体によって書き込まれるもので、バージョンを確認するための信頼できる場所です。 アプリケーション自身のログには表示されないので注意してください。 (例:catalina-moas.out)は、アプリケーションのログフレームワークによって生成されるもので、Tomcatの起動時のログは含まれません。
    findstr /i "Server version name" "C:\Program Files\miniOrange Identity Provider\logs\catalina.<date>.log"

Linuxでは、miniOrangeは通常、systemd上でTomcatを実行します。サービスの設定はユニットファイル、多くの場合bin/setenv.shに記述されています。

注意:

  • - miniOrange を書き込む IAM このタグの代わりにバージョン (例: 5.2.0).
  • - このタグの代わりに Apache Tomcat の最新バージョンを記述します (例: 9.0.120).

ステップ1:サービス構成を検出する

インストールパス、シンボリックリンクのターゲット、実行中のTomcat、およびサービス構成を確認してください。

  • ジョブの設定方法については、 最新の シンボリックリンクとそのターゲット:
    ls -la /opt/tomcat/
  • 実際のバージョン管理されたフォルダーを解決します。
    readlink -f /opt/tomcat/latest
  • JVM の実行: CATALINA_HOME、クラスパス、オプション:
    ps -ef | grep -i catalina | grep -v grep
  • Tomcatユニット(catalina.sh経由のExecStart):
    systemctl cat mo-idp-miniorange.service
  • 共有環境: MO_IDP_FOLDER、config/log パス:
    cat /etc/mo-idp-server.env

Tomcat ユニットが ${MO_IDP_FOLDER} (シンボリックリンクを指している) を使用していること、および他のサービスが ${MO_IDP_FOLDER}/services/*.jar から JAR を起動していることを確認してください。これが、シンボリックリンクを再設定するとスタック全体が一度にアップグレードされる理由です。

ステップ2:現在のインストールをバックアップする

  • 現在のインストール環境のバックアップアーカイブを作成します。
    sudo tar -czf /opt/mo-idp-backup-<ver>-$(date +%Y%m%d).tar.gz \
    -C /opt/tomcat --exclude='mo-idp-server-<ver>/services/logs' mo-idp-server-<ver>
  • バックアップファイルが作成されたことを確認してください。
    ls -lh /opt/mo-idp-backup-<ver>-*.tar.gz
  • アーカイブが有効であることを確認してください。
    sudo tar -tzf /opt/mo-idp-backup-<ver>-*.tar.gz > /dev/null && echo 'Archive OK'

注:サービス/ログを除外するとバックアップサイズが小さくなります(ログは破棄可能です)。完全なアーカイブを作成するには、--excludeオプションを削除してください。

ステップ3:新しいTomcatをダウンロードして解凍します

  • Tomcatディレクトリに移動してください。
    cd /opt/tomcat
  • 新しいTomcatパッケージをダウンロードしてください:
    sudo wget https://archive.apache.org/dist/tomcat/tomcat-9/v<NewTomcatVer>/bin/apache-tomcat-<NewTomcatVer>.tar.gz
  • パッケージを抽出します。
    sudo tar -xzf apache-tomcat-<NewTomcatVer>.tar.gz
  • 新しいフォルダが存在することを確認してください。
    ls -la /opt/tomcat/apache-tomcat-<NewTomcatVer>/

ステップ4:データを新しいフォルダに移行する(cp -a)

cp -a (コピー、移動ではない)を使用すると、元のフォルダがそのまま残るため、すぐにロールバックできます。

  •   (あなたの サーバー.xml コンテクスト):
    sudo cp -a /opt/tomcat/latest/conf/. /opt/tomcat/apache-tomcat-<NewTomcatVer>/conf/
    sudo grep -i moas /opt/tomcat/apache-tomcat-<NewTomcatVer>/conf/server.xml   # confirm Context copied
  • アプリケーション、ライセンス、ランタイムディレクトリ:
    # 1) sudo cp -a /opt/tomcat/latest/moas        /opt/tomcat/apache-tomcat-<NewTomcatVer>/moas
    
    # 2) sudo cp -a /opt/tomcat/latest/license.txt /opt/tomcat/apache-tomcat-<NewTomcatVer>/license.txt
    
    # 3) optional: carry historical logs / temp / work (or let them regenerate)
    sudo rm -rf /opt/tomcat/apache-tomcat-<NewTomcatVer>/logs /opt/tomcat/apache-tomcat-<NewTomcatVer>/temp /opt/tomcat/apache-tomcat-<NewTomcatVer>/work
    
    # 4) sudo cp -a /opt/tomcat/latest/logs /opt/tomcat/apache-tomcat-<NewTomcatVer>/logs
    
    # 5) sudo cp -a /opt/tomcat/latest/temp /opt/tomcat/apache-tomcat-<NewTomcatVer>/temp
    
    # 6) sudo cp -a /opt/tomcat/latest/work /opt/tomcat/apache-tomcat-<NewTomcatVer>/work
  • マイクロサービスメッシュ (すべてのJARファイル、設定ファイル、証明書 - 大容量のサービスログを除く):
    # 1) sudo mkdir -p /opt/tomcat/apache-tomcat-<NewTomcatVer>/services
    
    # 2) sudo rsync -a --exclude 'logs' \
    /opt/tomcat/latest/services/ /opt/tomcat/apache-tomcat-<NewTomcatVer>/services/
    
    # 3) sudo mkdir -p /opt/tomcat/apache-tomcat-<NewTomcatVer>/services/logs

ステップ5:所有権を修正し、検証する

  • 所有権を修正した後、JARファイルの数、config/certsファイル、catalina.shファイル、およびディスク容量を確認してください。
    # 1) sudo chown -R root:root /opt/tomcat/apache-tomcat-<NewTomcatVer>
    
    # 2) verify — JAR count auto-counts, so it matches whatever the mesh contains
    sudo find /opt/tomcat/apache-tomcat-<NewTomcatVer>/services/ -maxdepth 1 -name '*.jar' | wc -l
    
    # 3) sudo ls /opt/tomcat/apache-tomcat-<NewTomcatVer>/services/ | grep -E 'config|certs'
    
    # 4) sudo ls /opt/tomcat/apache-tomcat-<NewTomcatVer>/                # bin conf lib logs moas services temp webapps work
    
    # 5) sudo ls -la /opt/tomcat/apache-tomcat-<NewTomcatVer>/bin/catalina.sh   # must exist and be executable
    
    # 6) df -h /opt
  • 確認してください:JARファイルの数がサービス数と一致していること、config/certsファイルが存在すること、moasが存在すること、catalina.shが実行可能であること、ディスク容量がほぼ満杯ではないこと。

ステップ6:スタックを停止する

  • パターンによって検出されたすべての miniOrange サービスを停止し、次にインフラストラクチャ サービスを停止します。
    # 1)MO_SERVICES=$(systemctl list-units 'mo-idp-*.service' --all --no-legend | awk '{print $1}')
    
    # 2) sudo systemctl stop $MO_SERVICES
    
    # 3) sudo systemctl stop nginx.service rabbitmq-server.service redis-server.service
    
    # 4) systemctl list-units --type=service | grep -iE 'orange|redis|rabbit|nginx'   # confirm all stopped

ステップ7:シンボリックリンクを変更する

  • ポイント 最新の 新しいTomcatフォルダにシンボリックリンクを作成し、ターゲットを確認します。
    sudo ln -sfn /opt/tomcat/apache-tomcat-<NewTomcatVer> /opt/tomcat/latest
    
    readlink -f /opt/tomcat/latest        # must show the new versioned folder

ステップ8:スタックを開始する(まずインフラストラクチャと依存関係から)

  • まずインフラストラクチャを起動し、次にレジストリと構成サービスを起動し、最後にその他のすべてを起動します。EurekaとConfigを最初にシードすることで、一時的な登録エラーを回避できます。
    # 1) infrastructure
    sudo systemctl start redis-server.service rabbitmq-server.service nginx.service
    sudo ss -tlnp | grep -E ':6379|:5672|:80'     # confirm listening
    
    # 2) registry + config first
    sudo systemctl start mo-idp-eurekaserver.service mo-idp-configserver.service
    sleep 25
    
    # 3) all remaining mo-idp services, discovered by pattern
    sudo systemctl start $(systemctl list-unit-files 'mo-idp-*.service' --no-legend | awk '{print $1}')

ステップ9:確認

  • サービスの状態、Tomcatのバージョン、コンテナのログ、およびログインエンドポイントを確認してください。
    # 1) systemctl list-units --type=service | grep -iE 'orange|redis|rabbit|nginx'
    
    # 2) sudo /opt/tomcat/latest/bin/version.sh | grep 'Server version'
    
    # 3) sudo tail -30 /opt/tomcat/latest/logs/catalina.$(date +%Y-%m-%d).log
    
    # 4) curl -I -k https://<miniorange_URL> 2>&1 | head -5
  • バナーの内容を確認してください Apache Tomcat/9.0.120 (または、お使いのターゲットバージョン)。
  • すべて確認 mo-idp サービスに加え、nginx、RabbitMQ、およびRedisが稼働中です。
  • ログイン/SSOエンドポイントが正しく応答し、正しく表示されることを確認してください。

注意:
バージョンを確認する場所:
バージョンバナーは、bin/version.sh および logs/catalina に表示されます。 Tomcat自体によって書き込まれる.logファイルです。アプリケーション自身のログファイル(catalina-moas.out)には表示されません。

ステップ10:ロールバック(即時)

  • 古いバージョンのフォルダは変更されなかったため(cp -a)、ロールバックは単一のシンボリックリンクの反転と再起動です。
    # 1) sudo systemctl stop $(systemctl list-units 'mo-idp-*.service' --all --no-legend | awk '{print $1}')
    
    # 2) sudo ln -sfn /opt/tomcat/mo-idp-server-<ver> /opt/tomcat/latest
    
    # 3) sudo systemctl start mo-idp-eurekaserver.service mo-idp-configserver.service && sleep 25 && \
    
    # 4) sudo systemctl start $(systemctl list-unit-files 'mo-idp-*.service' --no-legend | awk '{print $1}')

ステップ11:クリーンアップ(数日間安定した状態が続いた後)

  • 古いフォルダとダウンロードしたtarballを削除してください。バックアップアーカイブはもう少しの間保持してください。
    sudo rm -rf /opt/tomcat/mo-idp-server-<ver>            # old folder
    
    sudo rm -f  /opt/tomcat/apache-tomcat-<NewTomcatVer>.tar.gz  # downloaded tarball
    # keep /opt/mo-idp-backup-<ver>-*.tar.gz a while longer

さらなる参考文献

デモをスケジュールしますか?

無料デモ申込み
  




その他のアイデンティティおよびアクセス管理製品