第 6 章 管理应用部署
JBoss EAP 具有一系列应用程序部署和配置选项,可满足管理员和开发人员的需求。对于管理员而言,管理控制台和管理 CLI 提供了理想的图形和命令行界面来管理生产环境中的应用部署。???对于开发人员,应用程序部署测试选项的范围包括可配置的文件系统 部署扫描程序、HTTP API、红帽 CodeReady Studio 和 Maven 等 IDE。
在部署应用程序时,您可能希望通过将 org.jboss.metadata.parser.validate
系统属性设置为 true
来为部署描述符启用验证。这可以通过以下方法之一完成:
启动服务器时。
EAP_HOME/bin/standalone.sh -Dorg.jboss.metadata.parser.validate=true
$ EAP_HOME/bin/standalone.sh -Dorg.jboss.metadata.parser.validate=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下管理 CLI 命令将它添加到服务器配置中:
/system-property=org.jboss.metadata.parser.validate:add(value=true)
/system-property=org.jboss.metadata.parser.validate:add(value=true)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1. 使用管理 CLI 管理应用部署 复制链接链接已复制到粘贴板!
使用管理 CLI 部署应用程序为您提供了单个命令行界面的好处,能够创建和运行部署脚本。您可以使用此脚本功能来配置特定的应用程序部署和管理场景。在作为单机服务器运行时,您可以管理单个服务器的部署,或者在受管域中运行时管理整个服务器网络。
6.1.1. 在独立服务器中管理应用程序部署 复制链接链接已复制到粘贴板!
6.1.1.1. 使用管理 CLI 将应用部署到独立服务器 复制链接链接已复制到粘贴板!
您可以使用 部署 deploy-file
命令,使用管理 CLI 部署应用程序。
先决条件
- JBoss EAP 正在运行。
流程
从管理 CLI 部署打包为 Web 归档(war)的应用。
语法
deployment deploy-file <path_to_the_application>/<application_name>.war
deployment deploy-file <path_to_the_application>/<application_name>.war
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
deployment deploy-file /my-applications/test-application.war
deployment deploy-file /my-applications/test-application.war
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功部署不会向管理 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")
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")
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
同样,您可以使用以下 部署命令
:
-
使用
deployment deploy-cli-archive
从.cli
归档文件中部署内容。CLI 部署存档是采用.cli
扩展名的JAR
文件。它包含应当要部署的应用程序存档,以及 CLI 脚本文件deploy.scr
和undeploy.scr
,其中包含命令和操作。一个脚本文件deploy.scr
包含部署应用程序存档和设置环境的命令和操作;另一个脚本文件undeploy.scr
,包含用于取消部署应用程序存档和清理环境的命令。 -
使用
deployment deploy-url
部署 URL 引用的内容。
当使用-- runtime-name
选项指定 runtime-name
属性时,您必须将 .war
扩展包含在名称中,否则 Web 上下文不会由 JBoss EAP 注册。
6.1.1.2. 使用管理 CLI 从单机服务器取消部署应用 复制链接链接已复制到粘贴板!
您可以使用 部署 undeploy
命令,从单机服务器取消部署应用。取消部署应用会从存储库中删除部署内容。如果要在应用程序不可用时保留部署内容,您可以禁用部署。如需更多信息,请参阅使用 管理 CLI 在单机服务器中禁用应用程序。
先决条件
- JBoss EAP 正在运行。
流程
使用管理 CLI 取消部署应用。
语法
deployment undeploy <deployment>
deployment undeploy <deployment>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
deployment undeploy test-application.war
deployment undeploy test-application.war
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功取消部署不会向管理 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")
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")
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
类似地,您可以使用 deployment undeploy-cli-archive
从 .cli
归档文件中取消部署内容。您还可以使用通配符()取消部署所有部署
。
deployment undeploy *
deployment undeploy *
6.1.1.3. 使用管理 CLI 禁用单机服务器中的应用程序 复制链接链接已复制到粘贴板!
您可以在不从存储库中删除部署内容的情况下禁用部署的应用程序。
先决条件
- JBoss EAP 正在运行。
流程
您可以使用管理 CLI 中的
部署 disable
命令,禁用单个应用程序或部署到 JBoss EAP 的所有应用。禁用单个部署:
语法
deployment disable <deployment>
deployment disable <deployment>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
deployment disable test-application.war
deployment disable test-application.war
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 禁用所有部署:
deployment disable-all
deployment disable-all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.1.4. 使用管理 CLI 在单机服务器中启用应用程序 复制链接链接已复制到粘贴板!
您可以启用禁用的应用程序。
先决条件
- JBoss EAP 正在运行。
流程
您可以使用管理 CLI 中的
部署
enable 命令启用单个应用程序或部署到 JBoss EAP 的所有应用。启用单个部署:
语法
deployment enable <deployment>
deployment enable <deployment>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
deployment enable test-application.war
deployment enable test-application.war
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用所有部署:
deployment enable-all
deployment enable-all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.1.5. 使用管理 CLI 列出单机服务器中的部署 复制链接链接已复制到粘贴板!
您可以列出单机服务器中的部署,并查看运行时名称、状态等部署信息。
先决条件
- JBoss EAP 正在运行。
流程
使用
部署 info
命令列出部署信息。deployment info
deployment info
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出中将显示每个部署的详细信息,如运行时名称、状态以及是否启用它。
NAME RUNTIME-NAME PERSISTENT ENABLED STATUS helloworld.war helloworld.war true true OK test-application.war test-application.war true true OK
NAME RUNTIME-NAME PERSISTENT ENABLED STATUS helloworld.war helloworld.war true true OK test-application.war test-application.war true true OK
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 按名称显示部署信息:
deployment info helloworld.war
deployment info helloworld.war
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您还可以使用部署 list 命令列出所有 部署
。
6.1.2. 在受管域中管理应用程序部署 复制链接链接已复制到粘贴板!
6.1.2.1. 使用管理 CLI 将应用部署到受管域 复制链接链接已复制到粘贴板!
您可以使用 部署 deploy-file
命令并使用管理 CLI 部署应用程序,并指定应该部署到哪个服务器组。
先决条件
- JBoss EAP 作为受管域运行。
流程
您可以将打包为 Web 归档(war)的应用程序从管理 CLI 部署到特定的服务器组或所有服务器组。
将应用程序部署到特定的服务器组:
语法
deployment deploy-file <path_to_the_application>/<application_name>.war --server-groups=<server-group_1>,..., <server-group_1>
deployment deploy-file <path_to_the_application>/<application_name>.war --server-groups=<server-group_1>,..., <server-group_1>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
deployment deploy-file /my-applications/test-application.war --server-groups=main-server-group,other-server-group
deployment deploy-file /my-applications/test-application.war --server-groups=main-server-group,other-server-group
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将应用程序部署到所有服务器组:
语法
deployment deploy-file <path_to_the_application>/<application_name>.war --all-server-groups
deployment deploy-file <path_to_the_application>/<application_name>.war --all-server-groups
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
deployment deploy-file /my-applications/test-application.war --all-server-groups
deployment deploy-file /my-applications/test-application.war --all-server-groups
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功部署不会向管理 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")
[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")
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
同样,您可以使用以下 部署命令
:
-
使用
deployment deploy-cli-archive
命令从.cli
归档文件中部署内容。CLI 部署存档是采用.cli
扩展名的JAR
文件。它包含应当要部署的应用程序存档,以及 CLI 脚本文件deploy.scr
和undeploy.scr
,其中包含命令和操作。一个脚本文件deploy.scr
包含部署应用程序存档和设置环境的命令和操作;另一个脚本文件undeploy.scr
,包含用于取消部署应用程序存档和清理环境的命令。 -
使用
deployment deploy-url
命令部署 URL 引用的内容。
当使用-- runtime-name
选项指定 runtime-name
属性时,您必须将 .war
扩展包含在名称中,否则 Web 上下文不会由 JBoss EAP 注册。
6.1.2.2. 使用管理 CLI 从受管域中取消部署应用 复制链接链接已复制到粘贴板!
您可以使用 部署 undeploy
命令,从作为受管域运行的 JBoss EAP 取消部署应用。取消部署应用会从存储库中删除部署内容。如果要在应用程序不可用时保留部署内容,您可以禁用部署。如需更多信息,请参阅使用 管理 CLI 在受管域中禁用应用程序。
先决条件
- JBoss EAP 作为受管域运行。
流程
从管理 CLI 使用该部署,从所有服务器组取消部署应用。
语法
deployment undeploy <application_name>.war --all-relevant-server-groups
deployment undeploy <application_name>.war --all-relevant-server-groups
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
deployment undeploy test-application.war --all-relevant-server-groups
deployment undeploy test-application.war --all-relevant-server-groups
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功取消部署不会向管理 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")
[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 undeploy * --all-relevant-server-groups
6.1.2.3. 使用管理 CLI 禁用受管域中的应用程序 复制链接链接已复制到粘贴板!
您可以从特定的服务器组禁用部署的应用程序,并使用该部署的其他服务器组在存储库中保留其内容。
先决条件
- JBoss EAP 作为受管域运行。
流程
您可以使用管理 CLI 中的
部署 disable
命令,禁用单个应用程序或部署到 JBoss EAP 的所有应用。分离单个应用程序:
语法
deployment disable <application_name>.war --server-groups=<server-group_1>,..., <server-group_1>
deployment disable <application_name>.war --server-groups=<server-group_1>,..., <server-group_1>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
deployment disable test-application.war --server-groups=other-server-group
deployment disable test-application.war --server-groups=other-server-group
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 禁用所有部署:
语法
deployment disable-all --server-groups=<server-group_1>,..., <server-group_1>
deployment disable-all --server-groups=<server-group_1>,..., <server-group_1>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
deployment disable-all --server-groups=other-server-group
deployment disable-all --server-groups=other-server-group
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.2.4. 使用管理 CLI 在受管域中启用应用程序 复制链接链接已复制到粘贴板!
启用禁用部署的应用程序。
先决条件
- JBoss EAP 作为受管域运行。
流程
您可以使用管理 CLI 中的
部署
enable 命令启用单个应用程序或部署到 JBoss EAP 的所有应用。启用单个部署:
语法
deployment enable <deployment> --server-groups=<server-group_1>,..., <server-group_1>
deployment enable <deployment> --server-groups=<server-group_1>,..., <server-group_1>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
deployment enable test-application.war --server-groups=other-server-group
deployment enable test-application.war --server-groups=other-server-group
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用所有部署:
deployment enable-all --server-groups=<server-group_1>,..., <server-group_1>
deployment enable-all --server-groups=<server-group_1>,..., <server-group_1>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
deployment enable-all --server-groups=other-server-group
deployment enable-all --server-groups=other-server-group
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.2.5. 使用管理 CLI 列出受管域中的部署 复制链接链接已复制到粘贴板!
您可以列出部署并查看运行时名称、状态等部署信息。
先决条件
- JBoss EAP 作为受管域运行。
流程
使用
部署 info
命令列出部署信息。deployment info helloworld.war
deployment info helloworld.war
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出将列出每个服务器组中的部署及其状态。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 按服务器组显示部署信息:
deployment info --server-group=other-server-group
deployment info --server-group=other-server-group
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出将列出指定服务器组的部署及其状态。
NAME RUNTIME-NAME STATE helloworld.war helloworld.war added test-application.war test-application.war enabled
NAME RUNTIME-NAME STATE helloworld.war helloworld.war added test-application.war test-application.war enabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您还可以使用部署 list 命令列出域中的所有 部署
。