天天看點

jboss CLI 指令行接口學習(适用JBOSS EAP 6.2+)

一、确認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名稱,為了便于了解,直接貼一張圖:

jboss CLI 指令行接口學習(适用JBOSS EAP 6.2+)

五、檢視某個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,這樣運維起來就友善多了,最終可以達到一鍵配置、一鍵部署的效果。