第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 から、デプロイ
コマンドを使用して、アプリケーションのデプロイメントへのパスを指定します。
deploy /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")
アプリケーションは正常にデプロイされました。
アプリケーションのアンデプロイ
管理 CLI から、undeploy
コマンドを使用して、デプロイメント名を指定します。
アプリケーションをアンデプロイし、デプロイメントコンテンツを削除します。
undeploy test-application.war
リポジトリーからデプロイメントコンテンツを削除せずにアプリケーションをアンデプロイします。
undeploy test-application.war --keep-content
これは、管理コンソールからデプロイメントを無効にするのと同じです。
正常にアンデプロイされると、管理 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")
アプリケーションは正常にアンデプロイされました。
デプロイメントのリスト表示
管理 CLI で deployment info
コマンドを使用して、デプロイメントの情報を表示します。
deployment-info
出力には、ランタイム名、状態、有効であるかどうかなど、各デプロイメントの詳細が表示されます。
NAME RUNTIME-NAME PERSISTENT ENABLED STATUS jboss-helloworld.war jboss-helloworld.war true true OK test-application.war test-application.war true true OK
--name
引数を使用して、デプロイメントを名前でフィルタリングして表示することもできます。
7.1.2. 管理 CLI を使用したマネージドドメインでのアプリケーションのデプロイ
アプリケーションのデプロイ
管理 CLI から、デプロイ
コマンドを使用して、アプリケーションのデプロイメントへのパスを指定します。また、アプリケーションをデプロイするサーバーグループを指定する必要もあります。
すべてのサーバーグループにアプリケーションをデプロイする場合
deploy /path/to/test-application.war --all-server-groups
特定のサーバーグループにアプリケーションをデプロイする場合
deploy /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")
アプリケーションは、管理対象ドメイン内の適切なサーバーグループに正常にデプロイされました。
アプリケーションのアンデプロイ
管理 CLI から、undeploy
コマンドを使用して、デプロイメント名を指定します。また、アプリケーションをアンデプロイするサーバーグループを指定する必要もあります。
すべてのサーバーグループからアプリケーションをアンデプロイします。
undeploy test-application.war --all-relevant-server-groups
特定のサーバーグループからアプリケーションをアンデプロイします。コンテンツはそのデプロイメントを持つ他のサーバーグループのリポジトリーに残しておく必要があるため、
--keep-content
パラメーターが必要であることに注意してください。undeploy test-application.war --server-groups=other-server-group --keep-content
これは、管理コンソールからデプロイメントを無効にするのと同じです。
正常にアンデプロイされると、管理 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")
アプリケーションは正常にアンデプロイされました。
デプロイメントのリスト表示
管理 CLI で deployment info
コマンドを使用して、デプロイメントの情報を表示します。デプロイメント名またはサーバーグループでデプロイメント情報を絞り込むことができます。
以下のコマンドは、名前を指定してデプロイメント情報を表示します。
deployment-info --name=jboss-helloworld.war
出力には、デプロイメントと各サーバーグループでの状態が表示されます。
NAME RUNTIME-NAME jboss-helloworld.war jboss-helloworld.war SERVER-GROUP STATE main-server-group enabled other-server-group added
以下のコマンドは、サーバーグループを指定してデプロイメント情報を表示します。
deployment-info --server-group=other-server-group
出力には、デプロイメントと、指定のサーバーグループに対する状態が表示されます。
NAME RUNTIME-NAME STATE jboss-helloworld.war jboss-helloworld.war added test-application.war test-application.war enabled
また、deploy -l
コマンドを使用して、ドメイン内のすべてのデプロイメントをリスト表示することもできます。