Mule アップグレードツール

The Mule upgrade tool is a command line utility for updating and upgrading standalone on-premise instances of Mule 4. Download the tool and integrate it with your existing automated processes and workflows by using scripts and cron jobs.

現在の Mule インスタンスに Runtime Manager エージェントがインストールされている場合、アップグレードツールは、アップグレードプロセスの一環としてエージェントのバージョンも更新します。

Mule インスタンスを正常にアップグレードした後に、アップグレードされた Mule インスタンスに Anypoint Monitoring エージェントがインストールされている場合、エージェントの更新はサポートされていないため、エージェントを再インストールします。​「Anypoint Monitoring エージェントの更新」​を参照してください。

Mule アップグレードツールは、ツールを使用して各ノードを手動でアップグレードすることにより、クラスター化された Mule インスタンスのアップグレードをサポートしています。アップグレードを続行する方法についての追加情報は、​クラスター化された Mule アプリケーションのアップグレード​を参照してください。このツールの使用を強くお勧めしますが、現在の Mule インスタンスをアップグレードするのに厳格に必要なわけではありません。完全に手動でのアップグレードについては、​「Upgrading an On-Premises Mule Instance Managed Through Runtime Manager (Runtime Manager で管理されているオンプレミス Mule インスタンスのアップグレード)」​を参照してください。

始める前に

アップグレードを始める前に、次の準備が整っていることを確認します。

  • 最新の修正とセキュリティ機能強化を備えたツールが実行されるように、​最新バージョンの Mule アップグレードツール​をご使用ください。

    ヘルプセンター​から Mule アップグレードツールをダウンロードしてください。

  • 現在運用中の Mule 4 インスタンスはアップグレードに備えて​停止​状況にあります。

    Mule アップグレードツールを使用して Mule バージョン 4.1.1 ~ 4.1.4 のアップグレードを行う場合は、2022 年 1 月 20 日以降にリリースされたパッチ更新からアップグレードを行う必要があります。2022 年 1 月 20 日より​​のバージョン 4.1.1 ~ 4.1.4 のリリースは現在のところツールでサポートされておらず、アップグレードしようとすると、最初にサポートされるバージョンにアップグレードしてからでないと Mule バージョンをアップグレードできない旨のエラーメッセージが表示されます (Mule Upgrades and Patch Updates を参照)。

  • 最新の Mule Runtime Engine ディストリビューションをシステムにダウンロードして展開してある。

    Mule アップグレードツールには、Mule Runtime のフルディストリビューションが必要です。必ずファイル名に (​patch​ ではなく) ​distribution​ という単語が含まれているフル Mule Runtime ディストリビューションをダウンロードしてください。たとえば、Mule 4.4.0 の 20220221 ディストリビューションであれば、ファイル名は ​mule-ee-distribution-standalone-4.4.0-20220221.zip​ となります。

    ヘルプセンター​から Mule Runtime ディストリビューションをダウンロードしてください。

  • ファイルシステムに 2 GB 以上の空きディスクスペースと、Mule ディストリビューションをインストールするためのアクセス権限がある。

  • (Windows 環境の場合) PowerShell スクリプトの実行ポリシーが ​[Unrestricted]​ に設定されている。

Mule のアップグレードまたは更新

クラスター化された Mule インスタンスを最新バージョンにアップグレードまたは更新する手順は、次のとおりです。

  1. Mule アップグレードツールをダウンロードしてある ​$MULE_HOME/tools​ ディレクトリに移動します。

  2. 最新の Mule Runtime ディストリビューションをダウンロードして展開してあるディレクトリの絶対パスを引数として指定し、​upgrade -n​ サブコマンドを実行します。例:

    $MULE_HOME/tools/upgrade-tool upgrade -n <newMuleDistributionAbsolutePath>

    このスクリプトの出力は次のようになります。

    ➜  tools ./upgrade-tool upgrade -n /Users/me/mule-download/upgrade/mule-enterprise-standalone-4.5.0/
    Mule Runtime Upgrade Tool
    ─────────────────────────
    INFO: Initiating upgrade process...
    
    INFO: Upgrading distribution at path [/opt/mule/mule-enterprise-standalone-4.4.0-20221212]
          with version: [4.4.0-20221212] to distribution at path
          [/opt/mule/mule-enterprise-standalone-4.4.0-20230217] with version [4.4.0-20230217] ...
    
    Do you want to proceed with the upgrade?
    To confirm please, enter [yes, no] (default: no): yes
    
    WARN: Unknown file tools/mule-runtime-upgrade-tool-logs/mule-runtime-upgrade-tool-logs.log
    was found in the runtime installation, and will be kept.
    
    WARN: A version in your MULE_HOME directory name was detected:
    /opt/mule/mule-enterprise-standalone-4.4.0-20221212, beware it may not match the current
    installed version inside the directory.
    
    INFO: Upgrade process finished successfully.
    
    Verifying Mule Agent
    ────────────────────
    INFO: Mule Agent not installed, skipping setup

これで、既存の Mule インスタンスがアップグレードされたため、アップグレードツールで必要でなくなった最近ダウンロードしたバージョン (例では ​<newMuleDistributionAbsolutePath>​ として参照) を削除できます。

対象の場所が ​$MULE_HOME​ であるため、アップグレードした Mule Runtime インスタンスによって以前のバージョンが置き換えられます。

アップグレードまたは更新のロールバック

Mule アップグレードツールは、アップグレードまたは更新プロセスを開始する前にアップグレードまたは更新するクラスター化された Mule インスタンスのバックアップを作成するため、クラスター化された Mule インスタンスをアップグレードまたは更新した後で、以前の状態に復元できます。バックアップは ​$MULE_HOME/.upgrade-tool-backup​ フォルダーに保存されます。

ロールバックを実行する手順は、次のとおりです。

  1. Mule アップグレードツールをダウンロードしてある ​$MULE_HOME/tools​ ディレクトリに移動します。

  2. rollback​ サブコマンドを次のように実行します。

    $MULE_HOME/tools/upgrade-tool rollback

ファイルの競合の解決

Mule アップグレードツールは、​現在の​ Mule ディストリビューションと​新しい​ディストリビューションの設定ファイルを比較し、変更された内容を検出して失われないようにします。Mule アップグレードツールが​新しい​ Mule ディストリビューションの設定ファイルで変更を検出すると、自動的に競合を解決し、アップグレードを続行しようとします。競合を自動的に解決できない場合、ツールでは次のアクションを実行します。

  • upgrade​ サブコマンドの実行を失敗させて、エラーメッセージを表示します。

  • 競合が検出された Mule 設定ファイルの名前をログ出力に記録します。

  • 競合が検出された設定ファイルを、現在の Mule ディストリビューションの ​${MULE_HOME}/conf​ ディレクトリから ​${MULE_HOME}/upgrade-tool/mule-config-conflicts/to_review​ にコピーします。

  • 設定ファイルの元のコンテンツを、​新しい​ Mule ディストリビューションから ​${MULE_HOME}/upgrade-tool/mule-configs-conflicts/new-${MULE_HOME_NEW_FOLDER_NAME}​ フォルダーにコピーします。

設定ファイルの競合によってアップグレードプロセスが失敗した場合は、以下の手順に従って競合を解決してから、アップグレードプロセスを続行してください。

Mule 設定ファイルの競合を解決する手順

アップグレード中に競合を解決する手順は、次のとおりです。

  1. アップグレード中の現在の Mule ディストリビューションの ​${MULE_HOME}/upgrade-tool/mule-config-conflicts/to_review/​ フォルダーで、競合が検出されたファイルのいずれかを選択します。

  2. ファイル比較ツール (​diff​ など) を使用して、次のパスのファイルのコンテンツを比較します。

    • ${MULE_HOME}/upgrade-tool/mule-config-conflicts/to_review/fileWithConflicts.conf

    • ${MULE_HOME}/upgrade-tool/mule-configs-files/new-${MULE_HOME_NEW_FOLDER_NAME}/fileWithConflicts.conf

  3. 相違点を確認したら、変更内容をマージするか、または破棄してください。

    • 変更内容をマージする場合は、新しい設定ファイル ​${MULE_HOME}/upgrade-tool/mule-config-conflicts/new-${MULE_HOME_NEW_FOLDER_NAME}/fileWithConflicts.conf​ ファイルから目的の変更内容を追加して前の設定ファイル ​${MULE_HOME}/upgrade-tool/mule-config-conflicts/to_review/fileWithConflicts.conf​ を変更します。次に、マージしたファイルを ​${MULE_HOME}/upgrade-tool/mule-config-conflicts/ready​ フォルダーにコピーします。

    • 変更内容を破棄して前の設定を保持する場合は、前の設定ファイル ​${MULE_HOME}/upgrade-tool/mule-config-conflicts/to_review/fileWithConflicts.conf​ を ​${MULE_HOME}/upgrade-tool/mule-config-conflicts/ready​ フォルダーに移動します。

      変更内容を破棄すると、古い設定が新しい Mule ディストリビューションで使用される場合があります。

  4. ${MULE_HOME}/upgrade-tool/mule-config-conflicts/to_review​ フォルダー内の各設定ファイルに対してステップ 1 ~ 3 を繰り返します。

  5. upgrade​ サブコマンドの実行を再試行します。

    アップグレードが正常に完了すると、ツールは ​${MULE_HOME}/upgrade-tool/mule-config-conflicts​ フォルダーを削除し、将来のアップグレードに備えてクリーンな環境に戻します。

無人のアップグレードまたは更新

対象環境でアップグレードを実行する前に、別の環境で競合を解決しておけば、アップグレードや更新を無人で実行できます。この手順は、別の環境で設定する​現在の​ Mule ディストリビューションと​新しい​ Mule ディストリビューションが、メイン環境の​現在の​ Mule ディストリビューションと​新しい​ Mule ディストリビューションのバージョンと一致する場合にのみ使用できます。

  1. ユーザーインタラクションが可能な環境で、​Mule 設定ファイルの競合を解決する手順​の説明に従ってすべての競合を確認して解決します。

  2. 対象環境で、​${MULE_HOME_WITH_USER_INTERACTION}/upgrade-tool/mule-config-conflicts/ready/​ から ​${MULE_HOME_WITHOUT_USER_INTERACTION}/upgrade-tool/mule-config-conflicts/ready/​ にファイルをコピーします。

  3. 対象環境で ​upgrade​ サブコマンドを実行します。

Mule アップグレードツールのログの設定

デバッグのログを有効化することで、Mule アップグレードツールの各操作の詳細情報を追加したり、ツールがログを保存するフォルダーを変更したり、カスタマイズされたログ設定ファイルを使用したりできます。

カスタム Log4j ファイルの指定

デフォルトでは、Mule アップグレードツールは ​$MULE_HOME/tools/upgrade-tool​ フォルダーにある ​log4j2-upgrade-tool.xml​ ファイルを使用します。

カスタム Log4j ファイルを使用するには、​-l​ パラメーターを使用して、使用するカスタム Log4j 設定ファイルのファイル名を指定します。例:

$MULE_HOME/tools/upgrade-tool -l myLog4j2File.xml upgrade

デバッグレベルログの有効化

デバッグログを有効化する手順は、次のとおりです。

  1. ツールで使用する Log4j ファイルを開きます。

  2. Log4j ファイルの次の行で、​level​ プロパティの値を ​INFO​ から ​DEBUG​ に変更します。

    <Logger level="INFO" name="com.mulesoft.runtime.upgrade.tool.service" additivity="false">

ログ出力のカスタマイズ

デフォルトでは、Mule アップグレードツールは ​./mule-Runtime-upgrade-tool-logs​ ディレクトリにログファイルを保存します。

ファイル名、出力パス、ログパターンを変更する手順は、次のとおりです。

  1. ツールで使用する Log4j ファイルを開きます。

  2. fileName​ プロパティと ​filePattern​ プロパティに希望する値を指定します。

    <RollingFile name="RollingFile"
      fileName="./mule-runtime-upgrade-tool-logs/mule-runtime-upgrade-tool-logs.log"
      filePattern="./mule-runtime-upgrade-tool-logs/$${date:yyyy-MM}/mule-runtime-upgrade-tool-logs-%d{-dd-MMMM-yyyy}-%i.log.gz" >

Mule アップグレードツールのサブコマンドとオプション

Mule アップグレードツールの実行時に使用できるサブコマンドとオプションを下表に示します。

サブコマンド 説明

upgrade

ローカル Mule インスタンスを、使用できる最新バージョンにアップグレードします。
このサブコマンドでは次のオプションがサポートされています。

オプション 説明

-n <newMuleDistributionPath>

ローカル Mule インスタンスを、ファイルシステムにダウンロードして展開してあるディストリビューションにアップグレードします。​<newMuleDistribution>​ パラメーターを使用して、新しい Mule ディストリビューションのパスを指定できます。例:
$ ./upgrade-tool upgrade -n /<newMuleDistributionPath>

-o <localMuleInstancePath>

<localMuleInstancePath>​ にあるローカル Mule インスタンスをアップグレードします。このオプションを使用すると、アップグレードツールと同じ ​$MULE_HOME​ パスにある Mule インスタンスとは異なる Mule インスタンスをアップグレードできます。例:
$ ./upgrade-tool upgrade -o /<localMuleInstancePath>

-d

現在の Mule インスタンスに永続的な変更を加えることなく、アップグレードプロセスをシミュレーションします。

-f

バックアップの上書きや適用したパッチの削除といった破壊的な操作に対してユーザーの確認を要求せずにアップグレードを実行します。

-h

このサブコマンドのヘルプメッセージを表示します。

rollback

Mule インスタンスを以前の状態に戻します。このサブコマンドは、ツールでアップグレードを正常に完了した後でのみ使用できます。
このサブコマンドでは次のオプションがサポートされています。

オプション 説明

-o <localMuleInstancePath>

<localMuleInstancePath>​ にあるローカル Mule インスタンスを復元します。このオプションを使用すると、アップグレードツールと同じ ​$MULE_HOME​ パスにある Mule インスタンスとは異なる Mule インスタンスを復元できます。例:
$ ./upgrade-tool rollback -o /<localMuleInstancePath>

-d

現在の Mule インスタンスに永続的な変更を加えることなく、ロールバックプロセスをシミュレーションします。

-f

ユーザーの確認を要求せずに Mule インスタンスを復元します。

-h

このサブコマンドのヘルプメッセージを表示します。

status

現在の Mule インスタンスに関して、次のような情報を提供します。

  • Mule Runtime Engine バージョン

  • 現在の Mule インスタンスがアップグレードまたはロールバックの条件を満たしていることを確認するメッセージ

  • 既存のバックアップとその場所

  • バックアップが存在する場合はその整合性

一般的なエラーのトラブルシューティング

以下に、アップグレードツールから返される最も一般的なエラーメッセージの一部と、それぞれの説明および解決策を示します。

Missing required subcommand (必要なサブコマンドがありません)

./upgrade-tool

Mule Runtime Upgrade Tool
─────────────────────────

Missing required subcommand
Usage: upgrade-tool [-hV] [COMMAND]
Try 'upgrade-tool --help' for more information.

原因

このエラーは、未知の、または存在しないサブコマンドが指定されたことを示します。サポートされているサブコマンドは、​upgrade​、​rollback​、​status​ のみです。

解決策

upgrade-tool​ コマンドと、サポートされているいずれかのサブコマンド (​upgrade​、​rollback​、または ​status​) を実行していることを確認します。

-h​ または ​--help​ オプションを使用すると、特定のサブコマンドの詳細情報を見ることができます。例:

$ ./upgrade-tool rollback --help

Missing required option (必須のオプションがありません)

./upgrade-tool upgrade

Mule Runtime Upgrade Tool
─────────────────────────

Missing required option: '--new-mule-distro=<newMuleDistro>'
Usage: upgrade-tool upgrade [-dfh] -n=<newMuleDistro> [-o=<oldMuleDistro>]
Try 'upgrade-tool upgrade --help' for more information.

原因

このエラーは、選択したサブコマンドに追加の引数が必要であることを示しています。たとえば、アップグレード時には引数 ​--new-mule-distro​ が必要です。

解決策

次のコマンドを実行して、特定のサブコマンドで必要な引数に関する情報を確認します。

./upgrade-tool upgrade --help

このコマンドを実行すると、追加情報が次のように表示されます。

Mule Runtime Upgrade Tool
─────────────────────────

Usage: upgrade-tool upgrade [-dfh] -n=<newMuleDistro> [-o=<oldMuleDistro>]
Upgrades a Mule Runtime to a newer version
  -d, --dry-run   Simulate upgrade process without performing any permanent
                    changes to the current Mule Runtime Distribution.
  -f, --force     Perform all the destructive operations like overwriting the
                    backup or removing the applied patches without user
                    confirmation
  -h, --help      Display this help message
  -n, --new-mule-distro=<newMuleDistro>
                  File path of the newer Mule Runtime distribution used for the
                    upgrade
  -o, --old-mule-distro=<oldMuleDistro>
                  File path of Mule Runtime distribution to upgrade

Usage:​ 行では、省略可能なオプションと引数が角括弧 (​[,]​) 内に示されます。角括弧が付いていないオプションと引数は必須です。

No space left on device (デバイスにスペースがありません)

$ ./upgrade-tool upgrade -n /tmp/mule-enterprise-standalone-4.4.0-20211104

Mule Runtime Upgrade Tool
─────────────────────────

INFO: Initiating upgrade process...
INFO: Upgrading distribution at path [/opt/mule-enterprise-standalone-4.4.0-20211026] with version: [4.4.0-20211104] to distribution at path [/tmp/mule-enterprise-standalone-4.4.0-20211104] with version [4.4.0-20211104] ...
ERROR: Version of new Mule distribution 4.4.0-20211104 should be newer than old Mule distribution: 4.4.0-20211104
ERROR: There's not enough disk space for performing the upgrade.
ERROR: No space left on device
No space left on device

原因

このエラーは、アップグレードを実行するのに必要な空きディスクスペースがないことを示します。

解決策

アップグレードツールは、Mule インスタンスが動作しているファイルシステムに 2 GB 以上の空きスペースを必要とします。システムに十分なディスクスペースがあり、他の要件も満足されていることを確認してください。

Linux 環境では、​df​ コマンドで空きディスクスペースを確認できます。

$ df -h /opt
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/vg-opt      419G  205G  193G  52% /opt

Version should be newer (新しいバージョンが必要です)

./upgrade-tool upgrade -n /tmp/mule-enterprise-standalone-4.4.0-20211104

Mule Runtime Upgrade Tool
─────────────────────────

INFO: Initiating upgrade process...
INFO: Upgrading distribution at path [/opt/mule-enterprise-standalone-4.4.0-20211026] with version: [4.4.0-20211104] to distribution at path [/tmp/mule-enterprise-standalone-4.4.0-20211104] with version [4.4.0-20211104] ...
ERROR: Version of new Mule distribution 4.4.0-20211104 should be newer than old Mule distribution: 4.4.0-20211104

原因

このエラーは、upgrade コマンドで、現在の Mule インスタンスと同じバージョンの新しい Mule ディストリビューションが指定された場合に発生します。

解決策

ダウンロードした Mule ディストリビューションが現在の Mule インスタンスよりも新しいバージョンであることを確認してください。アップグレード中にこのエラーメッセージが連続して返される場合は、現在の Mule インスタンスがすでにアップグレード済みであるか、または最新のバージョンが実行中であることを意味します。

Missing reading permissions (参照権限がありません)

./upgrade-tool upgrade -n /tmp/mule-enterprise-standalone-4.4.0-20211104

Mule Runtime Upgrade Tool
─────────────────────────

INFO: Initiating upgrade process...
INFO: Upgrading distribution at path [/opt/mule-enterprise-standalone-4.4.0-20211026] with version: [4.4.0-20211026] to distribution at path [/tmp/mule-enterprise-standalone-4.4.0-20211104] with version [4.4.0-20211104] ...
ERROR: Error validating required reading permissions under Mule distribution [/tmp/mule-enterprise-standalone-4.4.0-20211104]
java.nio.file.AccessDeniedException: /tmp/mule-enterprise-standalone-4.4.0-20211104/lib/mule/mule-module-cache-ee-4.4.0-20211104.jar
[...]

原因

新しい Mule ディストリビューションで必要な参照権限がアップグレードを実行しているユーザーに付与されていないため、スタックトレースで参照されているファイルを参照できません。

解決策

アップグレードツールによって参照不能として特定されているファイルの参照権限を取得してください。必要に応じて、システム管理者にお問い合わせください。

Missing writing permissions (書き込み権限がありません)

./upgrade-tool upgrade -n /tmp/mule-enterprise-standalone-4.4.0-20211104

Mule Runtime Upgrade Tool
─────────────────────────

INFO: Initiating upgrade process...
INFO: Upgrading distribution at path [/opt/mule-enterprise-standalone-4.4.0-20211026] with version: [4.4.0-20211026] to distribution at path [/tmp/mule-enterprise-standalone-4.4.0-20211104] with version [4.4.0-20211104] ...
ERROR: Error validating required writing permissions under Mule distribution [/opt/mule-enterprise-standalone-4.4.0-20211026]
java.nio.file.AccessDeniedException: /opt/mule-enterprise-standalone-4.4.0-20211026/lib/boot/libwrapper-linux-ppcle-64.so
[...]

原因

古い Mule ディストリビューションで必要な書き込み権限がアップグレードを実行しているユーザーに付与されていないため、スタックトレースで参照されているファイルに書き込めません。

解決策

アップグレードツールによって特定されたファイルへの書き込み権限を取得してください。必要に応じて、システム管理者にお問い合わせください。

Mule Runtime should be stopped (Mule Runtime を停止する必要があります)

./upgrade-tool upgrade -n /tmp/mule-enterprise-standalone-4.4.0-20211104

Mule Runtime Upgrade Tool
─────────────────────────

INFO: Initiating upgrade process...
INFO: Upgrading distribution at path [/opt/mule-enterprise-standalone-4.4.0-20211026] with version: [4.4.0-20211026] to distribution at path [/tmp/mule-enterprise-standalone-4.4.0-20211104] with version [4.4.0-20211104] ...
ERROR: Mule Runtime should be stopped.
ERROR: Not all preconditions are met to perform the upgrade. Review the log for details.
Not all preconditions are met to perform the upgrade. Review the log for details.

原因

Mule が実行中であることをアップグレードツールが検出しました。

解決策

アップグレードプロセスを開始する前に Mule を停止してください。現在の状況を確認するには ​${MULE_HOME}/bin/mule status​ コマンドを使用します。

Mule version is not supported for an upgrade (アップグレードでサポートされていない Mule バージョンです)

./upgrade-tool upgrade -n /tmp/mule-enterprise-standalone-4.4.0-20211104

Mule Runtime Upgrade Tool
─────────────────────────

INFO: Initiating upgrade process...
INFO: Upgrading distribution at path [/tmp/mule-enterprise-standalone-4.1.1-20211222] with version: [4.1.1] to distribution at path [/tmp/mule-enterprise-standalone-4.4.0-20211026] with version [4.4.0-20211026] ...
ERROR: Your Mule version cannot be upgraded to the new one, you need to upgrade to a version greater than 4.1.5, or for versions between 4.1.1 to 4.1.4, then packages released after January 20, 2022.
ERROR: Not all preconditions are met to perform the upgrade. Review the log for details.
Not all preconditions are met to perform the upgrade. Review the log for details.

原因

Mule アップグレードツールでは、現在の Mule インスタンスと新しい Mule インスタンス (​/new-${MULE_HOME_NEW_FOLDER_NAME}​) の両方がバージョン 4.1.5 以降である必要があります。

解決策

Mule アップグレードツールを使用してアップグレードを実行する前に、現在の Mule インスタンスと新しい Mule インスタンスの両方をバージョン 4.1.5 以降に手動でアップグレードしてください。

クラスター化された Mule アプリケーションのアップグレード

クラスター化された Mule インスタンスをアップグレードするには、Mule アップグレードツールを使用して各ノードを手動でアップグレードすることにより、ローカル Mule インスタンスのアップグレードプロセスを自動化します。

始める前に

アップグレードを始める前に、次の準備が整っていることを確認します。

  • 新しい Mule Runtime ディストリビューション (対象バージョン) と、アップグレードする各ノードにコピーされた Mule アップグレードツール (ダウンタイムを短縮するため)。

  • 最新の修正とセキュリティ機能強化を備えたツールが実行されるように、​最新バージョンの Mule アップグレードツール​をご使用ください。

    ヘルプセンター​から Mule アップグレードツールをダウンロードしてください。

  • 現在運用中の Mule 4 インスタンスはアップグレードに備えて​停止​状況にあります。

    Mule アップグレードツールを使用して Mule バージョン 4.1.1 ~ 4.1.4 のアップグレードを行う場合は、2022 年 1 月 20 日以降にリリースされたパッチ更新からアップグレードを行う必要があります。2022 年 1 月 20 日より​​のバージョン 4.1.1 ~ 4.1.4 のリリースは現在のところツールでサポートされておらず、アップグレードしようとすると、最初にサポートされるバージョンにアップグレードしてからでないと Mule バージョンをアップグレードできない旨のエラーメッセージが表示されます (Mule Upgrades and Patch Updates を参照)。

  • 最新の Mule Runtime Engine ディストリビューションをシステムにダウンロードして展開してある。

    Mule アップグレードツールには、Mule Runtime のフルディストリビューションが必要です。必ずファイル名に (​patch​ ではなく) ​distribution​ という単語が含まれているフル Mule Runtime ディストリビューションをダウンロードしてください。たとえば、Mule 4.4.0 の 20220221 ディストリビューションであれば、ファイル名は ​mule-ee-distribution-standalone-4.4.0-20220221.zip​ となります。

    ヘルプセンター​から Mule Runtime ディストリビューションをダウンロードしてください。

  • ファイルシステムに 2 GB 以上の空きディスクスペースと、Mule ディストリビューションをインストールするためのアクセス権限がある。

  • (Windows 環境の場合) PowerShell スクリプトの実行ポリシーが ​[Unrestricted]​ に設定されている。

Mule のアップグレードまたは更新

クラスター化された Mule インスタンスを最新バージョンにアップグレードまたは更新する手順は、次のとおりです。

  1. Mule アップグレードツールをダウンロードしてある ​$MULE_HOME/tools​ ディレクトリに移動します。

  2. 最新の Mule Runtime ディストリビューションをダウンロードして展開してあるディレクトリの絶対パスを引数として指定し、​upgrade -n​ サブコマンドを実行します。例:

    $MULE_HOME/tools/upgrade-tool upgrade -n <newMuleDistributionAbsolutePath>

    このスクリプトの出力は次のようになります。

    ➜  tools ./upgrade-tool upgrade -n /Users/me/mule-download/upgrade/mule-enterprise-standalone-4.5.0/
    Mule Runtime Upgrade Tool
    ─────────────────────────
    INFO: Initiating upgrade process...
    
    INFO: Upgrading distribution at path [/opt/mule/mule-enterprise-standalone-4.4.0-20221212]
          with version: [4.4.0-20221212] to distribution at path
          [/opt/mule/mule-enterprise-standalone-4.4.0-20230217] with version [4.4.0-20230217] ...
    
    Do you want to proceed with the upgrade?
    To confirm please, enter [yes, no] (default: no): yes
    
    WARN: Unknown file tools/mule-runtime-upgrade-tool-logs/mule-runtime-upgrade-tool-logs.log
    was found in the runtime installation, and will be kept.
    
    WARN: A version in your MULE_HOME directory name was detected:
    /opt/mule/mule-enterprise-standalone-4.4.0-20221212, beware it may not match the current
    installed version inside the directory.
    
    INFO: Upgrade process finished successfully.
    
    Verifying Mule Agent
    ────────────────────
    INFO: Mule Agent not installed, skipping setup

これで、既存の Mule インスタンスがアップグレードされたため、アップグレードツールで必要でなくなった最近ダウンロードしたバージョン (例では ​<newMuleDistributionAbsolutePath>​ として参照) を削除できます。

対象の場所が ​$MULE_HOME​ であるため、アップグレードした Mule Runtime インスタンスによって以前のバージョンが置き換えられます。

すべてのノードを同じ Mule Runtime バージョンにアップグレードまたは更新しないと正常に動作しませんのでご注意ください。

アップグレードまたは更新のロールバック

Mule アップグレードツールは、アップグレードまたは更新プロセスを開始する前にアップグレードまたは更新するクラスター化された Mule インスタンスのバックアップを作成するため、クラスター化された Mule インスタンスをアップグレードまたは更新した後で、以前の状態に復元できます。バックアップは ​$MULE_HOME/.upgrade-tool-backup​ フォルダーに保存されます。

ロールバックを実行する手順は、次のとおりです。

  1. Mule アップグレードツールをダウンロードしてある ​$MULE_HOME/tools​ ディレクトリに移動します。

  2. rollback​ サブコマンドを次のように実行します。

    $MULE_HOME/tools/upgrade-tool rollback

すべてのノードを同じ Mule Runtime バージョンにロールバックしないと正常に動作しませんのでご注意ください。