Wildfly 管理 CLI 配置
Posted
技术标签:
【中文标题】Wildfly 管理 CLI 配置【英文标题】:Wildfly Management CLI Configuration 【发布时间】:2018-09-05 15:27:57 【问题描述】:我一直在寻找将配置批量加载到 wildfly 的方法(比如我有一个 json 数据)。
类似这样的东西。
./jboss-cli.sh -c subsystem=messagingactivemq/server=default:add(<data.json>)
在哪里<data.json>
"outcome" => "success",
"result" =>
"address-full-policy" => "BLOCK",
"dead-letter-address" => "jms.queue.DLQ",
"expiry-address" => "jms.queue.ExpiryQueue",
"last-value-queue" => false,
"max-delivery-attempts" => 10,
"max-size-bytes" => 12333,
"message-counter-history-day-limit" => 10,
"page-max-cache-size" => 5,
"page-size-bytes" => 12333,
"redelivery-delay" => 0,
"redistribution-delay" => 222L,
"send-to-dla-on-no-route" => false
我想通过jboss-cli将上面的json直接加载到wildlfy。这甚至可能吗?在过去的几周里,我一直在寻找这方面的参考资料。欢迎任何意见。
已编辑 为了明确我的目标,我正在尝试将 jBoss AS7.1 上的手动配置项目迁移到 Wildfly 10.1。目前迁移脚本只支持 EAP 版本的 jBoss。所以我必须手动从 jBoss 中选择要迁移到 Wildfly 的配置。是的,wildfly 中有些配置已被弃用和/或删除,因此在 jBoss AS7.1 和 Wildfly10.1 之间,我必须在将配置加载到 wildfly 之前对配置进行一些更改,因此我提到了 json 数据。
自从我尝试通过jboss-cli.sh
使用命令/subsystem=messaging/hornetq-server=default:read-resource
在jBoss AS7.1 中输出资源时,它会输出类似
"outcome" => "success",
"result" =>
"acceptor" => undefined,
"allow-failback" => true,
"async-connection-execution-enabled" => true,
"backup" => false,
"bridge" => undefined,
"broadcast-group" => undefined,
"cluster-connection" => undefined,
... some resource ....
所以我将对以上数据进行一些修改(因为wildfly使用activemq)并将其作为activemq加载到wildfly。但它只是想使用json数据并将其直接加载到wildfly的jboss-cli.sh。我想自动化这个,只需执行一个脚本(shell)来进行迁移。
【问题讨论】:
【参考方案1】:不完全确定,您究竟想在这里实现什么,但如果您想从文件执行批量操作,您可以使用jboss-cli.sh --file=commands.cli
,其中commands.cli
是包含jboss cli 命令的文本文件。
这样您可以一次执行多个操作,此外,您还可以利用 JBoss CLI 提供的batch
功能来确保应用或恢复所有更改。
包含多个命令的示例文件:
#Add xa datasource
xa-data-source add \
--name=my.app.ds \
--jndi-name=java:jboss/datasources/my.app.ds \
--driver-name=h2 \
--user-name=username \
--password=password \
--use-java-context=true \
--enabled=true \
--xa-datasource-properties="URL"=>"jdbc:h2:tcp://$env.DB_HOST:localhost:$env.DB_PORT:1521/~/my.app.ds;MVCC=TRUE"
#Add JMS queue
jms-queue add --queue-address=foo.bar.myapp.queue --entries=java:/jms/queue/foo.bar.myapp.queue
#Add system property
/system-property=ENABLE_MY_COOL_MESSAGING_FEATURE:add(value="true")
如果你想基于JSON文件或CLI命令格式以外的任何其他格式定义模块或执行操作,恐怕你不走运。您可以创建自己的 java 库来包装 JBoss CLI 来执行它 - 因为我相信 JBoss/Wildfly 为 Java 和 Python 提供 CLI 绑定。
【讨论】:
明白了,请阅读上面的编辑帖子。我最初是这样做的,但由于计划是自动化迁移,因此非常乏味。正如您所提到的,我将尝试 CLI 绑定。谢谢 如果你想迁移,你可以试试official migration tool。 JBoss AS7 应该具有与 EAP 6.4 兼容的配置,Wildfly 10.1 应该与 EAP 7.2 兼容(因为 wildfly 是 EAP 的上游)。所以你可以使用迁移模板 eap6.4-eap7.2 这是否需要一个实际的 EAP 6.4 安装程序/服务器?我认为这需要一个。限制是我没有任何非社区 jboss 应用程序的副本 是的,但您可以轻松下载 EAP 发行版 - 您只需要一个 RedHat 开发者帐户(免费)以上是关于Wildfly 管理 CLI 配置的主要内容,如果未能解决你的问题,请参考以下文章