<plugin>
<groupId>org.mule.tools.maven</groupId>
<artifactId>mule-maven-plugin</artifactId>
<version>3.7.1</version>
<extensions>true</extensions>
<configuration>
<standaloneDeployment>
<muleHome>${mule.home.test}</muleHome>
<muleVersion>${app.runtime}</muleVersion>
</standaloneDeployment>
</configuration>
</plugin>
Mule Maven プラグインを使用したオンプレミス Mule インスタンスへのアプリケーションのデプロイ
Mule Maven プラグインバージョン 3.0.0、3.1.0、3.1.1、3.1.2、3.1.3、3.1.4、3.1.5、3.1.6、3.1.7 は非推奨です。 |
Anypoint Studio、Anypoint Runtime Manager、または Anypoint Platform CLI を使用してアプリケーションをオンプレミスでデプロイすることに加えて、Mule Maven プラグインを使用して Mule アプリケーションをデプロイすることもできます。これを行うには、特定の前提条件を満たし、目的のデプロイメント戦略をプロジェクトの pom.xml
ファイルで定義する必要があります。
別の方法を使用してオンプレミスにアプリケーションをデプロイする場合は、以下を参照してください。
オンプレミスデプロイメント戦略
Mule Maven プラグインを使用してアプリケーションをオンプレミスにデプロイする場合、3 つの異なるデプロイメント方法を選択できます。
-
スタンドアロンデプロイメント
この方法を使用して、オンプレミス Mule インスタンスに Mule アプリケーションを手動でデプロイします。 -
Runtime Manager REST API デプロイメント
この方法を使用すると、Runtime Manager REST API を使用してアプリケーションをデプロイできます。これにより、オンプレミス Mule インスタンスが Anypoint Runtime Manager アカウントにリンクされ、デプロイしたアプリケーションをさらに管理および監視できます。 -
Runtime Manager エージェントデプロイメント
この方法を使用すると、Runtime Manager エージェントを使用してアプリケーションをデプロイできます。これにより、ローカル API が公開され、その API をコールして、デプロイしたアプリケーションを管理および監視できます。
スタンドアロンデプロイメント戦略または Runtime Manager エージェントデプロイメント戦略を使用する場合、Mule Maven プラグインはドメインのデプロイもサポートします。
追加の操作により、複数のアプリケーションを並列にデプロイしたり、実行時にアプリケーションを更新したりできます。
前提条件
-
Mule Maven プラグインをプロジェクトに追加する
手順については、「Mule Maven プラグインを Mule プロジェクトに追加する」を参照してください。
スタンドアロン Mule Runtime Engine への Mule アプリケーションのデプロイ
plugin
要素内にスタンドアロンデプロイメント用の設定を追加し、プレースホルダの値をローカルの Mule Runtime Engine 情報で置き換えます。
プロジェクトのフォルダのコマンドラインから、アプリケーションをパッケージ化してデプロイゴールを実行します。
mvn clean package deploy -DmuleDeploy
スタンドアロンデプロイメントのパラメータリファレンス
パラメータ | 説明 | 必須 |
---|---|---|
|
最上位要素。 |
はい |
|
デプロイ時に使用するアプリケーション名を指定します。 |
はい |
|
ローカルマシンインスタンスで実行する Mule バージョン。 この値が一致しない場合、Mule Maven プラグインは Mule Runtime Engine をダウンロードしません。 |
はい |
|
ローカルマシンにおける Mule インスタンスの場所。 |
はい |
|
デプロイメントプロセスの開始からアーティファクトがデプロイされたことの確認までの許容される経過時間 (ミリ秒) デフォルト値は |
いいえ |
|
|
いいえ |
Runtime Manager REST API を使用した Mule アプリケーションのデプロイ
Mule Maven プラグインを使用すると、Runtime Manager REST API を使用してローカルの Mule インスタンスに Mule アプリケーションをデプロイできます。
前提条件
-
Runtime Manager で作成されたサーバ、サーバグループ、またはクラスタが必要です。
-
サーバを作成するには、「サーバの追加」を参照してください。
-
サーバグループを作成するには、「サーバグループの作成」を参照してください。
-
クラスタを作成するには、「クラスタの作成」を参照してください。
-
Runtime Manager REST API を使用したデプロイ
plugin
要素内に Runtime Manager デプロイメント用の設定を追加し、プレースホルダの値を Runtime Manager 情報で置き換えます。
<plugin>
<groupId>org.mule.tools.maven</groupId>
<artifactId>mule-maven-plugin</artifactId>
<version>3.7.1</version>
<extensions>true</extensions>
<configuration>
<armDeployment>
<muleVersion>${app.runtime}</muleVersion>
<uri>https://anypoint.mulesoft.com</uri>
<target>${target}</target>
<targetType>${target.type}</targetType>
<username>${username}</username>
<password>${password}</password>
<environment>${environment}</environment>
<properties>
<key>value</key>
</properties>
</armDeployment>
</configuration>
</plugin>
プロジェクトのフォルダのコマンドラインから、アプリケーションをパッケージ化してデプロイゴールを実行します。
mvn clean package deploy -DmuleDeploy
Authentication のメソッド
Mule Maven プラグインを使用してアプリケーションをデプロイする場合には、デプロイメントプラットフォームに対して認証するためのログイン情報をいくつかの方法で提供できます。使用する認証方法に応じて、デプロイメント設定で指定するパラメータが異なります。
認証方法 | 説明 | 設定パラメータ |
---|---|---|
ユーザ名とパスワード |
Mule インスタンスがインストールされているサーバのユーザ名とパスワードを使用して認証します。 |
|
サーバ |
Maven サーバに保存されているログイン情報を使用します。Maven の |
|
認証トークン |
認証トークンを使用してプラットフォームにアクセスします。 |
|
接続アプリケーション |
接続アプリケーションを使用して Anypoint Platform と通信することで、プログラムによって認証を実行します。 |
|
設定パラメータの詳細は、「Runtime Manager REST API デプロイメントのパラメータリファレンス」を参照してください。
Runtime Manager REST API デプロイメントのパラメータリファレンス
パラメータ | 説明 | 必須 |
---|---|---|
|
最上位要素。 |
はい |
|
デプロイ時に使用するアプリケーション名を指定します。 |
はい |
|
アプリケーションをデプロイメント対象で実行するために必要な Mule バージョン。 この値が一致しない場合、Mule Maven プラグインは Mule Runtime Engine をダウンロードしません。 |
はい |
|
Anypoint Platform URI。Anypoint Platform PCE を使用している場合、Anypoint Platform インストールの URI を使用してこのパラメータを指定します。 |
いいえ |
|
Mule インスタンスをインストールするサーバのサーバ名。 |
はい |
|
デプロイ先の対象の種別。 有効な値:
|
はい |
|
Mule インスタンスをインストールするサーバのユーザ名。 |
Anypoint Platform ログイン情報を使用してログインする場合のみ。 |
|
Mule インスタンスをインストールするサーバのパスワード。 |
Anypoint Platform ログイン情報を使用してログインする場合のみ。 |
|
Mule インスタンスをインストールするサーバの環境名。この値は、Runtime Manager アカウントで設定されたいずれかの環境に一致する必要があります。
|
はい |
|
デプロイメントのビジネスグループパス
|
いいえ |
|
デプロイメントのビジネスグループ ID |
いいえ |
|
デプロイメントプロセスの開始からアーティファクトがデプロイされたことの確認までの許容される経過時間 (ミリ秒) デフォルト値は |
いいえ |
|
Anypoint Platform ログイン情報を持つ Maven サーバ |
いいえ |
|
最上位要素
次に例を示します。
|
いいえ |
|
|
いいえ |
|
|
いいえ |
|
プラットフォームにアクセスするための認証トークンを指定します。ユーザ名とパスワードを設定する代わりに、この認証方式を使用できます。 |
認証トークンを使用してログインする場合のみ。 |
|
接続アプリケーションの |
接続アプリケーションログイン情報を使用してログインする場合のみ。 |
|
接続アプリケーションのシークレットキーを指定します。 |
接続アプリケーションログイン情報を使用してログインする場合のみ。 |
|
サポートされている唯一の接続種別、 |
接続アプリケーションログイン情報を使用してログインする場合のみ。 |
ログイン情報の暗号化
デプロイするときに暗号化ログイン情報を使用するには、Maven マスタ暗号化パスワードおよび settings-security.xml
ファイルをセットアップする必要があります。
-
Maven 設定のマスタパスワードを作成します。
mvn --encrypt-master-password <yourMasterPassword>
Maven はマスタパスワードを暗号化して返します。
{l9vZ2uM5SdgHy+H12z4pX7LEOZn3Kbnqmt3kIquLjnQ=}
-
~/.m2 リポジトリで
settings-security.xml
ファイルを作成し、暗号化マスタパスワードを追加します。<settingsSecurity> <master>{l9vZ2uM5SdgHy+H12z4pX7LEOZn3Kbnqmt3kIquLjnQ=}</master> </settingsSecurity>
-
Anypoint Platform パスワードを暗号化します。
mvn --encrypt-password <yourAnypointPlatformPassword>
Maven は Anypoint Platform パスワードを暗号化して返します。
{HTWFGH5BG9QmvJ1B=}
-
暗号化 Anypoint Platform パスワードを
settings.xml
ファイルの <server> セクションに追加します。<settings> ... <servers> ... <server> <id>my.anypoint.credentials</id> <username>my.anypoint.username</username> <password>{HTWFGH5BG9QmvJ1B=}</password> </server> ... </servers> ... </settings>
-
設定デプロイメントで、
settings.xml
ファイルで設定されたサーバ ID を挿入するログイン情報を参照します。<plugin> ... <configuration> ... <armDeployment> ... <server>my.anypoint.credentials</server> ... </armDeployment> ... </configuration> ... <plugin>
ユーザ名とパスワードがデプロイメント設定で設定されていると、定義されたサーバ ID が上書きされるため、設定されていないことを確認してください。
Anypoint Private Cloud Edition での TLS エラーのトラブルシューティング
Anypoint Platform Private Cloud Edition インストールの Runtime Manager のインスタンスに接続しようとすると、プラグインはそのサーバのログイン情報を検証します。トラストストアにサーバログイン情報をインストールしていない場合、SSL エラーが発生します。この問題を回避するために、非セキュアモードでプラグインを実行できます。このモードでは、セキュリティ検証がスキップされます。armInsecure タグまたは arm.insecure システムプロパティを使用できます。
非セキュア接続を有効にするのは危険です。実行内容を理解し、オンプレミスインストールがローカルネットワークに隔離されている場合を除き、使用しないでください。 |
下の設定例を参照してください。
<plugin>
<groupId>org.mule.tools.maven</groupId>
<artifactId>mule-maven-plugin</artifactId>
<version>3.7.1</version>
<extensions>true</extensions>
<configuration>
<armDeployment>
<target>${target}</target>
<targetType>${target.type}</targetType>
<username>${username}</username>
<password>${password}</password>
<environment>${environment}</environment>
<armInsecure>true</armInsecure>
</armDeployment>
</configuration>
</plugin>
Runtime Manager エージェントを使用した Mule アプリケーションのデプロイ
plugin
要素内に Runtime Manager エージェントデプロイメント用の設定を追加し、URI の値をリモートサーバ情報で置き換えます。
<plugin>
<groupId>org.mule.tools.maven</groupId>
<artifactId>mule-maven-plugin</artifactId>
<version>3.7.1</version>
<extensions>true</extensions>
<configuration>
<agentDeployment>
<uri>http://localhost:9999/</uri>
</agentDeployment>
</configuration>
</plugin>
プロジェクトのフォルダのコマンドラインから、アプリケーションをパッケージ化してデプロイゴールを実行します。
mvn clean package deploy -DmuleDeploy
Runtime Manager エージェントデプロイメントのパラメータリファレンス
パラメータ | 説明 | 必須 |
---|---|---|
|
最上位要素。 |
はい |
|
デプロイ時に使用するアプリケーション名を指定します。 |
はい |
|
アプリケーションをデプロイメント対象で実行するために必要な Mule バージョン。 この値が一致しない場合、Mule Maven プラグインは Mule Runtime Engine をダウンロードしません。 |
はい |
|
Mule インスタンスをインストールするサーバの URI。 |
はい |
|
デプロイメントプロセスの開始からアーティファクトがデプロイされたことの確認までの許容される経過時間 (ミリ秒) デフォルト値は |
いいえ |
|
|
いいえ |
ドメインのデプロイ
スタンドアロンデプロイメント戦略または Runtime Manager エージェントデプロイメント戦略を使用する場合のみ、Mule Maven プラグインはドメインのデプロイをサポートします。
ドメインをデプロイするには、アプリケーションのデプロイ時に使用するものと同じ設定とデプロイメント手順を使用します。たとえば、スタンドアロンインスタンスにドメインをデプロイするには、次の手順を実行します。
-
plugin
要素内にスタンドアロンデプロイメント用の設定を追加し、プレースホルダの値をローカルの Mule Runtime Engine 情報で置き換えます。<plugin> <groupId>org.mule.tools.maven</groupId> <artifactId>mule-maven-plugin</artifactId> <version>3.7.1</version> <extensions>true</extensions> <configuration> <standaloneDeployment> <muleHome>${mule.home.test}</muleHome> <muleVersion>${app.runtime}</muleVersion> </standaloneDeployment> </configuration> </plugin>
-
プロジェクトのフォルダのコマンドラインから、ドメインをパッケージ化してデプロイゴールを実行します。
mvn clean package deploy -DmuleDeploy
並列でのアプリケーションのデプロイ
オンプレミス Mule インスタンスに複数のアプリケーションを並列にデプロイできます。多数のアプリケーションをデプロイする場合は、並列にデプロイすると起動時間を短縮できます。起動順序は不特定であるため、デプロイメントが失敗しないように、アプリケーションが相互連動していないことを確認します。
並列処理は 20 で固定されています。
並列デプロイを有効にする手順は次のとおりです。
-
Mule アプリケーションを Mule Runtime Engine インスタンスの
/apps
ディレクトリにパッケージ (エクスポート) します。 -
-M-Dmule.deployment.parallel
オプションを使用して Mule を起動します。mule -M-Dmule.deployment.parallel
これらの手順を実行すると、Mule は /apps
ディレクトリにあるすべてのアプリケーションを並列にデプロイします。
実行時のアプリケーションの更新
実行時の Mule アプリケーションの更新は、クラスの変更、エンドポイントの変更 (ポートの変更など)、フローの再設定を伴う複雑な変更になる場合があります。アプリケーションの更新では、最初にアプリケーションを適切にシャットダウンしてから、数秒以内にバックグラウンドでアプリケーションを再設定します。このプロセスは、ユーザに対して透過的に行われます。
アプリケーションは、2 つの方法で更新できます。
-
展開された既存のアプリケーションフォルダに変更を追加して、「マスタ」設定ファイル (デフォルトではアプリケーションルートディレクトリにある
mule-config.xml
) を操作する。 -
更新されたバージョンのアプリケーションを含む新しい
jar
を $MULE_HOME/apps
ディレクトリに追加する。Mule は、jar
を既存アプリケーションの更新バージョンとして検出し、アプリケーションのクリーンな再デプロイを実行します。
Mule は、古いアプリケーションフォルダへの変更を破棄します。新しいアプリケーションフォルダは、jar
から展開されたクリーンなアプリケーションフォルダです。
どちらの方法も、既存のビルドツールと適切に統合されます。