一、确認CLI所使用的端口
以domain模式為例,檢視domain controller(也就是master主機)上的host.xml
其中native.port對應的端口9999端口,即為CLI連接配接所需的端口
二、通過CLI連接配接到Jboss
$JBOSS_HOME/bin/jboss-cli.sh
connect 192.168.1.2:9999 (大家根據實際情況,把這裡的IP換成master主機對應的ip和端口)
如果是連接配接遠端主機,接下來會提示輸入使用者名/密碼(即:jboss管理控制台的使用者名、密碼)
[[email protected]: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
"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
僅部署但是不啟用
七、其它指令
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,這樣運維起來就友善多了,最終可以達到一鍵配置、一鍵部署的效果。