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,這樣運維起來就方便多了,最終可以達到一鍵配置、一鍵部署的效果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM