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