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

JBoss EAP には、管理者向けと開発者向けのアプリケーションデプロイメントおよび設定オプションが多くあります。管理者は、管理コンソール のグラフィカルインターフェイスや 管理 CLI のコマンドラインインターフェイスを使用して本番環境のアプリケーションデプロイメントを管理できます。開発者は、設定可能なファイルシステムの デプロイメントスキャナーHTTP API、Red Hat Developer Studio などの IDE、および Maven などを含む、多くのテストオプションをアプリケーションのデプロイメントで使用できます。

アプリケーションをデプロイするときにデプロイメント記述子の検証を有効にするには、org.jboss.metadata.parser.validate システムプロパティーを true に設定します。これには、以下の方法の 1 つを使用します。

  • サーバー起動時

    $ EAP_HOME/bin/standalone.sh -Dorg.jboss.metadata.parser.validate=true
  • 以下の管理 CLI コマンドでサーバー設定に追加

    /system-property=org.jboss.metadata.parser.validate:add(value=true)

7.1. 管理 CLI を使用したアプリケーションのデプロイ

管理 CLI を使用してアプリケーションをデプロイすると、単一のコマンドラインインターフェイスでデプロイメントスクリプトを作成および実行できます。このスクリプト機能を使用して、特定のアプリケーションデプロイメントおよび管理シナリオを設定できます。スタンドアロンサーバーとして稼働している場合は単一サーバーのデプロイメント状態を管理でき、管理対象ドメインで稼働している場合はサーバーのネットワーク全体のデプロイメントを管理できます。

7.1.1. 管理 CLI を使用したアプリケーションのスタンドアロンサーバーへのデプロイ

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

管理 CLI で deployment deploy-file コマンドを使用し、アプリケーションデプロイメントへのパスを指定します。

deployment deploy-file /path/to/test-application.war

正常にデプロイされると、管理 CLI には何も出力されませんが、サーバーログにデプロイメントメッセージが記録されます。

WFLYSRV0027: Starting deployment of "test-application.war" (runtime-name: "test-application.war")
WFLYUT0021: Registered web context: /test-application
WFLYSRV0010: Deployed "test-application.war" (runtime-name : "test-application.war")

同様に、以下の deployment コマンドを使用できます。

  • deployment deploy-cli-archive を使用してコンテンツを .cli アーカイブファイルからデプロイします。CLI デプロイメントアーカイブは、.cli 拡張子を持つ JAR ファイルです。デプロイする必要があるアプリケーションアーカイブと、コマンドおよび操作が含まれる deploy.scr および undeploy.scr CLI スクリプトファイルが含まれます。deploy.scr スクリプトファイルには、アプリケーションアーカイブをデプロイし、環境を設定するコマンドと操作が含まれます。undeploy.scr スクリプトファイルには、アプリケーションアーカイブをアンデプロイし、環境をクリーンアップするコマンドが含まれます。
  • deployment deploy-url を使用して、URL によって参照されるコンテンツをデプロイします。

deployment enable コマンド を使用して、無効になっている アプリケーションを有効にすることもできます。

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

管理 CLI で deployment undeploy コマンドを使用し、デプロイメント名を指定します。これにより、リポジトリーからデプロイメントコンテンツが削除されます。アンデプロイする際にデプロイメントコンテンツを維持する場合は、Disable an Application を参照してください。

deployment undeploy test-application.war

正常にアンデプロイされると、管理 CLI には何も出力されませんが、サーバーログにアンデプロイメントメッセージが記録されます。

WFLYUT0022: Unregistered web context: /test-application
WFLYSRV0028: Stopped deployment test-application.war (runtime-name: test-application.war) in 62ms
WFLYSRV0009: Undeployed "test-application.war" (runtime-name: "test-application.war")

同様に、deployment undeploy-cli-archive を使用して .cli アーカイブファイルからコンテンツをアンデプロイできます。ワイルドカード (*) を使用してすべてのデプロイメントをアンデプロイすることも可能です。

deployment undeploy *
アプリケーションの無効化

デプロイメントコンテンツをリポジトリーから削除せずに、デプロイされたアプリケーションを無効にします。

deployment disable test-application.war

deployment disable-all コマンドを使用するとすべてのデプロイメントを無効化することができます。

deployment disable-all
アプリケーションの有効化

無効になっているデプロイされたアプリケーションを有効にします。

deployment enable test-application.war

deployment enable-all コマンドを使用するとすべてのデプロイメントを有効化することができます。

deployment enable-all
デプロイメントの一覧表示

管理 CLI で deployment info コマンドを使用して、デプロイメントの情報を表示します。

deployment info

出力には、ランタイム名、状態、有効であるかどうかなど、各デプロイメントの詳細が表示されます。

NAME                 RUNTIME-NAME         PERSISTENT ENABLED STATUS
helloworld.war       helloworld.war       true       true    OK
test-application.war test-application.war true       true    OK

以下のコマンドは、名前を指定してデプロイメント情報を表示します。

deployment info helloworld.war

deployment list コマンドを使用して、デプロイメントをすべて表示することもできます。

7.1.2. 管理 CLI を使用した管理対象ドメインでのアプリケーションのデプロイ

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

管理 CLI で deployment deploy-file コマンドを使用し、アプリケーションデプロイメントへのパスを指定します。また、アプリケーションをデプロイするサーバーグループを指定する必要もあります。

  • すべてのサーバーグループにアプリケーションをデプロイする場合

    deployment deploy-file /path/to/test-application.war --all-server-groups
  • 特定のサーバーグループにアプリケーションをデプロイする場合

    deployment deploy-file /path/to/test-application.war --server-groups=main-server-group,other-server-group

正常にデプロイされると、管理 CLI には何も出力されませんが、サーバーログに各サーバーのデプロイメントメッセージが記録されます。

[Server:server-one] WFLYSRV0027: Starting deployment of "test-application.war" (runtime-name: "test-application.war")
[Server:server-one] WFLYUT0021: Registered web context: /test-application
[Server:server-one] WFLYSRV0010: Deployed "test-application.war" (runtime-name : "test-application.war")

同様に、以下の deployment コマンドを使用できます。

  • deployment deploy-cli-archive コマンドを使用してコンテンツを .cli アーカイブファイルからデプロイします。CLI デプロイメントアーカイブは、.cli 拡張子を持つ JAR ファイルです。デプロイする必要があるアプリケーションアーカイブと、コマンドおよび操作が含まれる deploy.scr および undeploy.scr CLI スクリプトファイルが含まれます。deploy.scr スクリプトファイルには、アプリケーションアーカイブをデプロイし、環境を設定するコマンドと操作が含まれます。undeploy.scr スクリプトファイルには、アプリケーションアーカイブをアンデプロイし、環境をクリーンアップするコマンドが含まれます。
  • deployment deploy-url コマンドを使用して、URL によって参照されるコンテンツをデプロイします。

deployment enable コマンド を使用して、無効になっている アプリケーションを有効にすることもできます。

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

管理 CLI で deployment undeploy コマンドを使用し、デプロイメント名を指定します。また、アプリケーションをアンデプロイするサーバーグループを指定する必要もあります。特定のサーバーグループからのアンデプロイについては、アプリケーションの無効化 を参照してください。

すべてのサーバーグループからアプリケーションをアンデプロイします。

deployment undeploy test-application.war --all-relevant-server-groups

正常にアンデプロイされると、管理 CLI には何も出力されませんが、サーバーログに各サーバーのアンデプロイメントメッセージが記録されます。

[Server:server-one] WFLYUT0022: Unregistered web context: /test-application
[Server:server-one] WFLYSRV0028: Stopped deployment test-application.war (runtime-name: test-application.war) in 74ms
[Server:server-one] WFLYSRV0009: Undeployed "test-application.war" (runtime-name: "test-application.war")

同様に、deployment undeploy-cli-archive コマンドを使用して .cli アーカイブファイルからコンテンツをアンデプロイできます。ワイルドカード (*) を使用してすべてのデプロイメントをアンデプロイすることも可能です。

deployment undeploy * --all-relevant-server-groups
アプリケーションの無効化

特定のサーバーグループからデプロイされたアプリケーションを無効にし、そのデプロイメントを持つ他のサーバーグループのリポジトリーにそのコンテンツを保持します。

deployment disable test-application.war --server-groups=other-server-group

deployment disable-all コマンドを使用するとすべてのデプロイメントを無効化することができます。

deployment disable-all --server-groups=other-server-group
アプリケーションの有効化

無効になっているデプロイされたアプリケーションを有効にします。

deployment enable test-application.war

deployment enable-all コマンドを使用するとすべてのデプロイメントを有効化することができます。

deployment enable-all --server-groups=other-server-group
デプロイメントの一覧表示

管理 CLI で deployment info コマンドを使用して、デプロイメントの情報を表示します。デプロイメント名またはサーバーグループでデプロイメント情報を絞り込むことができます。

以下のコマンドは、名前を指定してデプロイメント情報を表示します。

deployment info helloworld.war

出力には、デプロイメントと各サーバーグループでの状態が表示されます。

NAME               RUNTIME-NAME
helloworld.war     helloworld.war

SERVER-GROUP       STATE
main-server-group  enabled
other-server-group added

以下のコマンドは、サーバーグループを指定してデプロイメント情報を表示します。

deployment info --server-group=other-server-group

出力には、デプロイメントと、指定のサーバーグループに対する状態が表示されます。

NAME                 RUNTIME-NAME         STATE
helloworld.war       helloworld.war       added
test-application.war test-application.war enabled

deployment list コマンドを使用して、ドメインのデプロイメントをすべて表示することもできます。