jboss CLI 命令行接口学习(适用JBOSS EAP 6.2+)

一、确认CLI所使用的端口

以domain模式为例,查看domain controller(也就是master主机)上的host.xml

1 <management-interfaces>
2     <native-interface security-realm="ManagementRealm">
3         <socket interface="management" port="${jboss.management.native.port:9999}"/>
4     </native-interface>
5     <http-interface security-realm="ManagementRealm">
6         <socket interface="management" port="${jboss.management.http.port:9990}"/>
7     </http-interface>
8 </management-interfaces>

其中native.port对应的端口9999端口,即为CLI连接所需的端口

二、通过CLI连接到Jboss

$JBOSS_HOME/bin/jboss-cli.sh

connect 192.168.1.2:9999 (大家根据实际情况,把这里的IP换成master主机对应的ip和端口)

如果是连接远程主机,接下来会提示输入用户名/密码(即:jboss管理控制台的用户名、密码)

[domain@172.xxx.xxx.xxx:9999 /] (如果能看到这个,说明连接成功)

三、启动/停止指定Group下的所有Server

保持连接状态,直接输入

/server-group=group8080:stop-servers

如果返回

{     "outcome" => "success",     "result" => undefined,     "server-groups" => undefined }

表示已经成功将组group8080下的所有server停止。类似的,如果要启动该组下的所有server,把stop-servers,换成start-servers即可

四、启动/停止某个特定的Server

/host=master/server-config=server8080:stop

如果返回

{     "outcome" => "success",     "result" => "STOPPING" }

表示master这台host上的server8080已经被停止,这里的master和server8080,对应于domain中的具体host名称及host下的server名称,为了便于理解,直接贴一张图:

五、查看某个Server的状态

ls /host=master/server-config=server8080

返回结果:

interface                        auto-start=true                  priority=undefined                jvm                              cpu-affinity=undefined           socket-binding-group=ha-sockets   path                             group=group8080                  socket-binding-port-offset=0      system-property                  name=server8080                  status=STOPPED  

其中status=STOPPED表示该Server已停止

六、部署应用/删除已经部署的应用

standalone 模式: 部署应用 deploy /<PATH>/TestApp.war 删除应用 undeploy TestApp.war 部署应用(但不启用) deploy /<PATH>/TestApp.war --disabled 将已部署但是未启用的应用,变成enable状态 deploy --name=TestApp.war 删除应用(但是保留文件),相当于disable undeploy TestApp.war --keep-content domain模式: 部署应用到所有server group deploy /<PATH>/TestApp.war --all-server-groups 删除应用 undeploy TestApp.war --all-relevant-server-groups 从某一个group上删除应用(但保留文件),相当于从某一个group上disable该应用 undeploy TestApp.war --server-groups=main-server-group --keep-content 将应用assign到某个group上 deploy /<PATH>/TestApp.war --server-groups=main-server-group 仅部署但是不启用 deploy /<PATH>/TestApp.war --disabled

七、其它命令

help --commands

还有很多其它命令就不逐一讲解了,大家可以用help --commands去查看,下面这些都是可用的命令 batch               data-source         history             patch               rollout-plan        xa-data-source       cd                  deploy              if                  pwd                 run-batch            clear               deployment-info     jdbc-driver-info    quit                shutdown             command             deployment-overlay  jms-queue           read-attribute      try                  connect             echo-dmr            jms-topic           read-operation      undeploy             connection-factory  help                ls                  reload              version  

如果某个命令不知道用法,比如:deploy 不知道怎么用,可以用 deploy --help 查看详细用法

最后,反问一个问题:既然jboss提供了web端的管理控制台,运维人员可以通过图形界面操作,学习CLI这东西有什么用 ?

答案:在大型集群(节点数>50)的部署环境中,假设新增一个数据源,想让新的数据源生效,必须重启所有相应group下的server,一个个手动点击效率太低了。上节我们学习如何用代码动态创建JNDI数据源,再加上本节的知识,完全可以写一个管理程序,让代码自动添加数据源,然后调用CLI shell命令,自动重启server,这样运维起来就方便多了,最终可以达到一键配置、一键部署的效果。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏BestSDK

37个TOP实例命令,超过一半你肯定都没见过

1. Top 命令输出 首先,让我们了解一下输出。top命令会显示系统的很多信息。我们需要理解不同部分输出的意义:默认运行时,top命令会显示如下输出: ? 前...

3276
来自专栏晓晨的专栏

Jenkins 集群搭建

Jenkins是当下比较流行的一款功能强大的持续集成工具,它支持搭建集群,来提高多项目的构建速度,模式为主从模式,master会将任务分配到各个从节点进行并发构...

3035
来自专栏写代码的海盗

ubuntu 13.04 设定静态IP

切换到root用户,然后进入/etc/network目录。备份interfaces文件(备份文件是一个好习惯) 下面编辑interfaces文件,添加如下语句:...

2855
来自专栏wblearn

代码提示插件Spket

Spket是一个可以在Eclipse及MyEclipse中实现JavaScript代码自动提示、自动校验、自动纠错的插件。

1181
来自专栏烂笔头

pytesser模块WindowsError错误解决方法

目录[-] 在使用pytesser做图片文字识别时遇到 WindowsError: [Error 2] 错误,报错内容如下: Traceback (most...

3478
来自专栏贾鹏辉的技术专栏@CrazyCodeBoy

React Native应用部署/热更新-CodePush最新集成总结(新)

React Native应用部署/热更新-CodePush最新集成总结(新) ---- 更新说明: 此次博文更新适配了最新版的CodePush v1.17....

7966
来自专栏happyJared

APP自动化:Appium极简上手

Appium是一个开源的自动化测试框架,用于原生,混合和移动Web应用程序。 它使用WebDriver协议驱动iOS,Android和Windows应用程序。关...

2101
来自专栏iOS开发日记

iOS - xcode经常报的经典error解决办法大全

错误原因: 返回cell的代码放在括号的范围不对,看下周围代码的作用域。有时括号太多,容易放错代码。

4588
来自专栏程序员的知识天地

程序员常用开发工具配置,给自己留一手!

修改D:javaenvapache-tomcat-7.0.26confserver.xml

1201
来自专栏BIT泽清

React Native应用部署/马甲包热更新-CodePush最新集成总结(2018年最新)

React Native支持大家用React Native技术开发APP,并打包生成一个APP。在动态更新方面React Native只是提供了动态更新的基础,...

3960

扫码关注云+社区

领取腾讯云代金券