在 JBoss EAP 6 和 WildFly 中,管理服务器是一项挑战。特别是对于大型团队,重要的是要知道每个人都在使用相同的服务器配置,即使并非所有人都可以使用 Docker 或 Vagrant 等工具。
输入 JBoss CLI。 JBoss CLI 是一个批处理脚本,可以在 %JBOSS_HOME%\bin\jboss-cli.bat (或 Linux 的 .sh)中找到,并通过提供一致的方式轻松保持配置相同来简化此任务,这对开发团队都是如此和生产环境。
CLI 将开始断开连接,但键入“ connect ”将使用默认连接选项将其连接到本地运行实例。另一种选择是在从命令行启动 CLI 时提供选项“--connect”或简单的“-c”:
%JBOSS_HOME%\bin\jboss-cli.bat --connect
%JBOSS_HOME%\bin\jboss-cli.bat -c
其他启动参数包括:
范围 | 描述 |
--controller=主机:端口 | 指定要连接的 JBoss 的位置。可以连接到任何独立的 JBoss 服务器或域控制器。默认值为本地主机:9999。 |
--gui | 以 GUI 模式启动 CLI。更多内容请见下文。 |
--file=/path/to/script.cli | 指定要运行的 CLI 脚本的路径。 “cli”扩展名只是一个约定,它可以是任何东西。 |
--user=用户名 | JBoss 管理用户的用户名。本地连接时不需要,仅适用于远程服务器。 |
--密码=密码 | JBoss 管理用户的密码。本地连接时不需要,仅适用于远程服务器。 |
--command=命令 | 此选项允许您对 CLI 执行单个命令,而无需进入交互模式。 |
--commands=CMD1,CMD2 | 此选项(注意“s”)允许您在逗号分隔列表中运行多个命令。它们之间不能有空格。 |
CLI 可以像大多数 shell 一样使用,并提供制表符补全。在没有开始键入命令的情况下按 Tab 键将列出可用选项。
通过提供 --gui 启动参数,可以使用更直观的方式与 CLI 交互:
在下面的屏幕截图中,我右键单击了 data-source=* 节点,我看到了一个命令选项列表。每当显示“ resource =* ”时,这都不是真正的资源,而是可以创建的资源的通用表示。
CLI 命令通常采用以下形式:
%JBOSS_HOME%\bin\jboss-cli.bat --connect
%JBOSS_HOME%\bin\jboss-cli.bat -c
首先,您拥有 CLI 资源路径 。这可能有好几层深,所以我可以按如下方式处理 ExampleDS 数据源:
%JBOSS_HOME%\bin\jboss-cli.bat --connect
%JBOSS_HOME%\bin\jboss-cli.bat -c
资源路径之后是 操作名称 。对于 ExampleDS,这可以是“write-attribute”或“undefined-attribute”。
第二行是 操作参数 ,它只是属性的名称和要设置的值。
因此,例如,要设置 ExampleDS 的最大池大小,命令将是:
%JBOSS_HOME%\bin\jboss-cli.bat --connect
%JBOSS_HOME%\bin\jboss-cli.bat -c
这也可以使用 GUI 来完成。在写入属性操作中输入正确的值后, cmd> 框中将填充命令:
按提交按钮将打开输出选项卡,显示与从命令行运行时相同的输出:
注意: 要查看更改后的值,需要通过关闭和打开节点来刷新资源属性
一种充分利用 GUI 的“最佳实践”策略可能是:
1. 使用 GUI 创建适当的命令
2.将命令复制并粘贴到一个新文件.cli中
3. 逻辑上将命令捆绑在一起;例如,将所有与 JDBC 相关的命令组合到一个文件中,然后将所有 JMS 命令组合到一个单独的文件中。
4. 将 CLI 脚本提交到 VCS 系统(例如 Git)
此方法不是规定性的,但可能有助于创建可与团队共享的分组命令书。
CLI 具有
批处理模式
,可以在脚本或交互模式下使用。这可以按如下方式使用:
%JBOSS_HOME%\bin\jboss-cli.bat --connect
%JBOSS_HOME%\bin\jboss-cli.bat -c
在上面的例子中,可以看出“ batch ”命令开始了一个新的批处理。该批次将是一个 原子事务 ,这意味着,如果任何命令失败,整个批次都将失败并回滚。
命令“
holdback-batch $name
”会将在批处理中输入的命令保存到一个名为 $name 的命名批处理中,然后可以通过输入“
batch $name
”来调用它。这将调用
$name
批处理,在此阶段甚至可以添加更多命令,但下一步可能是使用“
run-batch
”执行批处理
批处理的优势不仅在于它们的原子性;它们还可以用于将命令按逻辑组合在一起,然后非常简单地重新排序它们以确保先决条件命令以正确的顺序运行。
有时,并不总是提前知道正确的命令。使用 GUI 底部的“过滤器”框很有帮助,但在 GUI 不可用的情况下,社区用户为 JBoss EAP 和 WildFly 创建了一个参考:
http://wildscribe.github.io/index.html
此外,通过在交互式控制台键入“$ command --help ”,任何命令都可以获得帮助,例如:
对于 JBoss CLI,当然还有更多可以说的,但是写更多的博客仍然不如动手尝试有用。这种配置方法之所以如此强大,是因为它有可能与 DevOps 工具(如 Chef)相结合,它可以在几分钟内以域或独立模式构建一个完整的环境,并具有准确的、已知的配置。