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 Runtime Engine への Mule アプリケーションのデプロイ

plugin​ 要素内にスタンドアロンデプロイメント用の設定を追加し、プレースホルダの値をローカルの Mule Runtime Engine 情報で置き換えます。

<plugin>
  <groupId>org.mule.tools.maven</groupId>
  <artifactId>mule-maven-plugin</artifactId>
  <version>3.3.2</version>
  <extensions>true</extensions>
  <configuration>
    <standaloneDeployment>
      <muleHome>${mule.home.test}</muleHome>
      <muleVersion>${app.runtime}</muleVersion>
    </standaloneDeployment>
  </configuration>
</plugin>

プロジェクトのフォルダのコマンドラインから、アプリケーションをパッケージ化してデプロイゴールを実行します。

mvn clean package deploy -DmuleDeploy

スタンドアロンデプロイメントのパラメータリファレンス

パラメータ 説明 必須

standaloneDeployment

最上位要素。

はい

applicationName

デプロイ時に使用するアプリケーション名を指定します。

はい

muleVersion

ローカルマシンインスタンスで実行する Mule バージョン。
この値がデプロイメント対象で実行している Mule バージョンに一致しない場合、プラグインで例外が発生します。

この値が一致しない場合、Mule Maven プラグインは Mule Runtime Engine をダウンロードしません。

はい

muleHome

ローカルマシンにおける Mule インスタンスの場所。

はい

deploymentTimeout

デプロイメントプロセスの開始からアーチファクトがデプロイされたことの確認までの許容される経過時間 (ミリ秒)

デフォルト値は ​1000000​ です。.

いいえ

skip

true​ に設定すると、プラグインデプロイメントゴールをスキップします。
デフォルト値は ​false​ です。.

いいえ

Runtime Manager REST API を使用した Mule アプリケーションのデプロイ

Mule Maven プラグインを使用すると、Runtime Manager REST API を使用してローカルの Mule インスタンスに Mule アプリケーションをデプロイできます。

前提条件

Runtime Manager REST API を使用したデプロイ

plugin​ 要素内に Runtime Manager デプロイメント用の設定を追加し、プレースホルダの値を Runtime Manager 情報で置き換えます。

<plugin>
  <groupId>org.mule.tools.maven</groupId>
  <artifactId>mule-maven-plugin</artifactId>
  <version>3.3.2</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 インスタンスがインストールされているサーバのユーザ名とパスワードを使用して認証します。

  • username

  • password

サーバ

Maven サーバに保存されているログイン情報を使用します。Maven の settings.xml​ ファイル内で設定します。

  • server

認証トークン

認証トークンを使用してプラットフォームにアクセスします。
サポートされているシングルサインオン (SSO) 種別は「ID 管理」​を参照してください。

  • authToken

接続アプリケーション

接続アプリケーションを使用して Anypoint Platform と通信することで、プログラムによって認証を実行します。
接続アプリケーションのログイン情報に Design Center Developer​ アクセススコープが設定されている必要があります。
接続アプリケーションを作成する手順は、「開発者向けの接続アプリケーション」​を参照してください。

  • connectedAppClientId

  • connectedAppClientSecret

  • connectedAppGrantType

設定パラメータの詳細は、「​​Runtime Manager REST API デプロイメントのパラメータリファレンス​」を参照してください。

Runtime Manager REST API デプロイメントのパラメータリファレンス

パラメータ 説明 必須

armDeployment

最上位要素。

はい

applicationName

デプロイ時に使用するアプリケーション名を指定します。

はい

muleVersion

アプリケーションをデプロイメント対象で実行するために必要な Mule バージョン。
この値がデプロイメント対象で実行している Mule バージョンに一致しない場合、プラグインで例外が発生します。

この値が一致しない場合、Mule Maven プラグインは Mule Runtime Engine をダウンロードしません。

はい

uri

Anypoint Platform URI。Anypoint Platform PCE を使用している場合、Anypoint Platform インストールの URI を使用してこのパラメータを指定します。
設定しない場合、デフォルトでこの値は ​https://anypoint.mulesoft.com​ に設定されます。

いいえ

target

Mule インスタンスをインストールするサーバのサーバ名。

はい

targetType

デプロイ先の対象の種別。

有効な値:

  • サーバ

  • serverGroup

  • クラスタ

はい

username

Mule インスタンスをインストールするサーバのユーザ名。

Anypoint Platform ログイン情報を使用してログインする場合のみ。

password

Mule インスタンスをインストールするサーバのパスワード。

Anypoint Platform ログイン情報を使用してログインする場合のみ。

environment

Mule インスタンスをインストールするサーバの環境名。この値は、Runtime Manager アカウントで設定されたいずれかの環境に一致する必要があります。
例:

<environment>Sandbox</environment>

はい

businessGroup

デプロイメントのビジネスグループパス
親組織から対象ビジネスグループへの完全な階層パスを指定します。次に例を示します。

<businessGroup>ParentOrg\SubOrg1\myBusinessGroup</businessGroup>

いいえ

businessGroupId

デプロイメントのビジネスグループ ID
ビジネスグループパスを指定する代わりにビジネスグループ ID を指定してアプリケーションをデプロイできます。
特定のビジネスグループへのアクセス権のみがあり、親組織へのアクセス権がない場合は、ビジネスグループ ID は必須パラメータです。
このパラメータは、プラグインバージョン 3.2.7 以降で使用できます。

いいえ

deploymentTimeout

デプロイメントプロセスの開始からアーチファクトがデプロイされたことの確認までの許容される経過時間 (ミリ秒)

デフォルト値は ​1000000​ です。.

いいえ

server

Anypoint Platform ログイン情報を持つ Maven サーバ
これは、Maven ​settings.xml​ ファイルに保存されたログイン情報を使用する場合のみ必要です。これは Mule サーバ名ではありません。

いいえ

properties

最上位要素
デプロイする Mule アプリケーションのプロパティを設定する必要がある場合、最上位要素 ​<properties>​ を使用できます。

<properties>
  <key>value</key>
</properties>

次に例を示します。

<properties>
  <http.port>8081</http.port>
</properties>

いいえ

skip

true​ に設定すると、プラグインデプロイメントゴールをスキップします。
デフォルト値は ​false​ です。.

いいえ

skipDeploymentVerification

true​ に設定すると、デプロイされるアプリケーションの検証をスキップします。
デフォルト値は ​false​ です。.

いいえ

authToken

プラットフォームにアクセスするための認証トークンを指定します。ユーザ名とパスワードを設定する代わりに、この認証方式を使用できます。
サポートされているシングルサインオン (SSO) 種別は​「ID 管理」​を参照してください。

認証トークンを使用してログインする場合のみ。

connectedAppClientId

接続アプリケーションの ​clientID​ 値を指定します。

接続アプリケーションログイン情報を使用してログインする場合のみ。

connectedAppClientSecret

接続アプリケーションのシークレットキーを指定します。

接続アプリケーションログイン情報を使用してログインする場合のみ。

connectedAppGrantType

サポートされている唯一の接続種別、​client_credentials​ を指定します。

接続アプリケーションログイン情報を使用してログインする場合のみ。

ログイン情報の暗号化

デプロイするときに暗号化ログイン情報を使用するには、Maven マスタ暗号化パスワードおよび ​settings-security.xml​ ファイルをセットアップする必要があります。

  1. Maven 設定のマスタパスワードを作成します。

    mvn --encrypt-master-password <yourMasterPassword>

    Maven はマスタパスワードを暗号化して返します。

    {l9vZ2uM5SdgHy+H12z4pX7LEOZn3Kbnqmt3kIquLjnQ=}
  2. ~/.m2 リポジトリで ​settings-security.xml​ ファイルを作成し、暗号化マスタパスワードを追加します。

    <settingsSecurity>
      <master>{l9vZ2uM5SdgHy+H12z4pX7LEOZn3Kbnqmt3kIquLjnQ=}</master>
    </settingsSecurity>
  3. Anypoint Platform パスワードを暗号化します。

    mvn --encrypt-password <yourAnypointPlatformPassword>

    Maven は Anypoint Platform パスワードを暗号化して返します。

    {HTWFGH5BG9QmvJ1B=}
  4. 暗号化 Anypoint Platform パスワードを ​settings.xml​ ファイルの <server> セクションに追加します。

    <settings>
     ...
      <servers>
       ...
        <server>
          <id>my.anypoint.credentials</id>
          <username>my.anypoint.username</username>
          <password>{HTWFGH5BG9QmvJ1B=}</password>
        </server>
       ...
      </servers>
     ...
    </settings>
  5. 設定デプロイメントで、​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.3.2</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.3.2</version>
  <extensions>true</extensions>
  <configuration>
    <agentDeployment>
      <uri>http://localhost:9999/</uri>
    </agentDeployment>
  </configuration>
</plugin>

プロジェクトのフォルダのコマンドラインから、アプリケーションをパッケージ化してデプロイゴールを実行します。

mvn clean package deploy -DmuleDeploy

Runtime Manager エージェントデプロイメントのパラメータリファレンス

パラメータ 説明 必須

agentDeployment

最上位要素。

はい

applicationName

デプロイ時に使用するアプリケーション名を指定します。

はい

muleVersion

アプリケーションをデプロイメント対象で実行するために必要な Mule バージョン。
この値がデプロイメント対象で実行している Mule バージョンに一致しない場合、プラグインで例外が発生します。

この値が一致しない場合、Mule Maven プラグインは Mule Runtime Engine をダウンロードしません。

はい

uri

Mule インスタンスをインストールするサーバの URI。

はい

deploymentTimeout

デプロイメントプロセスの開始からアーチファクトがデプロイされたことの確認までの許容される経過時間 (ミリ秒)

デフォルト値は ​1000000​ です。.

いいえ

skip

true​ に設定すると、プラグインデプロイメントゴールをスキップします。
デフォルト値は ​false​ です。.

いいえ

ドメインのデプロイ

スタンドアロンデプロイメント戦略または Runtime Manager エージェントデプロイメント戦略を使用する場合のみ、Mule Maven プラグインはドメインのデプロイをサポートします。

ドメインをデプロイするには、アプリケーションのデプロイ時に使用するものと同じ設定とデプロイメント手順を使用します。たとえば、スタンドアロンインスタンスにドメインをデプロイするには、次の手順を実行します。

  1. plugin​ 要素内にスタンドアロンデプロイメント用の設定を追加し、プレースホルダの値をローカルの Mule Runtime Engine 情報で置き換えます。

    <plugin>
      <groupId>org.mule.tools.maven</groupId>
      <artifactId>mule-maven-plugin</artifactId>
      <version>3.3.2</version>
      <extensions>true</extensions>
      <configuration>
        <standaloneDeployment>
          <muleHome>${mule.home.test}</muleHome>
          <muleVersion>${app.runtime}</muleVersion>
        </standaloneDeployment>
      </configuration>
    </plugin>
  2. プロジェクトのフォルダのコマンドラインから、ドメインをパッケージ化してデプロイゴールを実行します。

    mvn clean package deploy -DmuleDeploy

並列でのアプリケーションのデプロイ

オンプレミス Mule インスタンスに複数のアプリケーションを並列にデプロイできます。多数のアプリケーションをデプロイする場合は、並列にデプロイすると起動時間を短縮できます。起動順序は不特定であるため、デプロイメントが失敗しないように、アプリケーションが相互連動していないことを確認します。

並列デプロイを有効にする手順は次のとおりです。

  1. Mule アプリケーションを Mule Runtime Engine インスタンスの ​/apps​ ディレクトリにパッケージ (エクスポート) します。

  2. -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​ から展開されたクリーンなアプリケーションフォルダです。

どちらの方法も、既存のビルドツールと適切に統合されます。

Was this article helpful?

💙 Thanks for your feedback!