第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
コマンドを使用して、ドメインのデプロイメントをすべて表示することもできます。