Mule Maven プラグインを使用したオンプレミス Mule インスタンスへのアプリケーションのデプロイ

Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[]

可能な場合は、Equality の会社の値に一致するように、含めない用語を変更しました。顧客の実装に対する影響を回避するために、一部の用語は変更されていません。

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>
Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::example$mmp-concept-config.xml[]
  <configuration>
    <standaloneDeployment>
      <muleHome>${mule.home.test}</muleHome>
      <muleVersion>${app.runtime}</muleVersion>
    </standaloneDeployment>
  </configuration>
</plugin>

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

mvn clean deploy -DmuleDeploy

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

パラメーター 説明 必須

standaloneDeployment

最上位要素。

はい Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[]

muleVersion

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

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

はい

muleHome

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

はい Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[] Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[]

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

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

前提条件

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

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

<plugin>
Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::example$mmp-concept-config.xml[]
  <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 deploy -DmuleDeploy

Authentication のメソッド

Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[]

Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[]

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

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

パラメーター 説明 必須

armDeployment

最上位要素。

はい Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[]

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>

はい Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[] Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[] Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[] Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[] Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[] Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[] Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[] Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[] Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[]

ログイン情報の暗号化

Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[]

+

<plugin>
  ...
  <configuration>
    ...
    <armDeployment>
      ...
      <server>my.anypoint.credentials</server>
      ...
    </armDeployment>
    ...
  </configuration>
  ...
<plugin>

+ NOTE: ユーザー名とパスワードがデプロイメント設定で設定されていると、定義されたサーバー ID が上書きされるため、設定されていないことを確認してください。

Anypoint Private Cloud Edition での TLS エラーのトラブルシューティング

Anypoint Platform Private Cloud Edition​ インストールの Runtime Manager のインスタンスに接続しようとすると、プラグインはそのサーバーのログイン情報を検証します。トラストストアにサーバーログイン情報をインストールしていない場合、SSL エラーが発生します。この問題を回避するために、非セキュアモードでプラグインを実行できます。このモードでは、セキュリティ検証がスキップされます。​armInsecure​ タグまたは ​arm.insecure​ システムプロパティを使用できます。

非セキュア接続を有効にするのは危険です。実行内容を理解し、オンプレミスインストールがローカルネットワークに隔離されている場合を除き、使用しないでください。

下の設定例を参照してください。

<plugin>
Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::example$mmp-concept-config.xml[]
  <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>
Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::example$mmp-concept-config.xml[]
  <configuration>
    <agentDeployment>
      <uri>http://localhost:9999/</uri>
    </agentDeployment>
  </configuration>
</plugin>

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

mvn clean deploy -DmuleDeploy

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

パラメーター 説明 必須

agentDeployment

最上位要素。

はい Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[]

muleVersion

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

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

はい

uri

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

はい Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[] Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::partial$mmp-concept.adoc[]

ドメインのデプロイ

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

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

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

    <plugin>
    Unresolved include directive in modules/ROOT/pages/deploy-on-premises.adoc - include::mule-runtime::example$mmp-concept-config.xml[]
      <configuration>
        <standaloneDeployment>
          <muleHome>${mule.home.test}</muleHome>
          <muleVersion>${app.runtime}</muleVersion>
        </standaloneDeployment>
      </configuration>
    </plugin>
  2. プロジェクトのフォルダーのコマンドラインから、ドメインをパッケージ化してデプロイゴールを実行します。

    mvn clean deploy -DmuleDeploy

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

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

並列処理は 20 で固定されています。

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

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

  2. -M-Dmule.deployment.parallel​ オプションを使用して Mule を起動します。

    mule -M-Dmule.deployment.parallel

これらの手順を実行すると、Mule は ​/apps​ ディレクトリにあるすべてのアプリケーションを並列にデプロイします。

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

Mule アプリケーションは、アプリケーションフォルダーを直接削除するのではなく、アプリケーションのアンカーファイルを削除することでアンデプロイできます。

アプリケーションのアンカーファイルのみを削除することで、次のようになります。

  • ホットデプロイメントレイヤーからの干渉を防止し、同時の競合アクションの余地をなくします。

  • 一部のオペレーションシステムでアプリケーションの JAR ファイルがロックする問題を回避し、クリーンなシャットダウンとアンデプロイメントを可能にします。

たとえば、​stockTrader​ アプリケーションが実行されている (アプリケーションフォルダーと ​$MULE_HOME/apps/stockTrader-anchor.txt​ ファイルが存在) 場合、アンカーファイルを削除するだけで実行時にアプリケーション Mule インスタンスから削除されます。アプリケーションフォルダーはアプリケーションの終了後に削除されます。

Mule アプリケーションをアンデプロイした後で、​LoggerContext​ が停止するまで 15 秒のタイムアウトがあります。アプリケーションのログファイルはこのタイムアウトが経過した後にならないとリリースされません。この情報は、他のプロセスで使用されているファイルを削除できない Windows では重要です。 Mule アプリケーションをアンデプロイした後で、LoggerContext が停止するまで 15 秒のタイムアウトがあります。アプリケーションのログファイルはこのタイムアウトが経過した後にならないとリリースされません。この情報は、他のプロセスで使用されているファイルを削除できない Windows では重要です。

実行時のアプリケーションの更新

実行時の Mule アプリケーションの更新は、クラスの変更、エンドポイントの変更 (ポートの変更など)、フローの再設定を伴う複雑な変更になる場合があります。アプリケーションの更新では、最初にアプリケーションを適切にシャットダウンしてから、数秒以内にバックグラウンドでアプリケーションを再設定します。このプロセスは、ユーザーに対して透過的に行われます。

アプリケーションは、2 つの方法で更新できます。

  • 展開された既存のアプリケーションフォルダーに変更を追加して、メイン設定ファイル (デフォルトではアプリケーションルートディレクトリにある ​mule-config.xml​) を操作する。
    このオプションを有効にするには、システムプロパティ ​-M-Dmule.deployment.forceParseConfigXmls=true​ を使用して Runtime を起動します。

  • 更新されたバージョンのアプリケーションを含む新しい ​jar​ を ​$MULE_HOME/apps​ ディレクトリに追加する。Mule は、​jar​ を既存アプリケーションの更新バージョンとして検出し、アプリケーションのクリーンな再デプロイを実行します。
    Mule は、古いアプリケーションフォルダーへの変更を破棄します。新しいアプリケーションフォルダーは、​jar​ から展開されたクリーンなアプリケーションフォルダーです。

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