티스토리 뷰

728x90
반응형

본 포스팅에서는 WildFly를 구성하기 위한 Shell Script에 대해 살펴보도록 하겠습니다.

복잡도가 높은 다양한 인스턴스를 나누어 관리하거나, JDK를 인스턴스 별도 다르게 가져가야 한다거나, 포트 충돌을 손쉽게 막기 위한 용도로써 활용 될 수 있습니다.

Shell Script는 크게 WildFly 관리 용도 및 상태 정보 확인 용도로 구분하도록 하겠습니다.

WildFly 기동 종료 어드민 접속

1. run.sh 기동

먼저 WildFly 기동 스크립트입니다.

#!/bin/bash
export JAVA_HOME=/home/wildfly/java-1.8.0
export NODENAME=api
export JBOSS_DIR=/home/wildfly/wildfly13
export JBOSS_LOG_DIR=$JBOSS_DIR/$NODENAME/log
export JBOSS_MANAGER_IP=192.168.2.175

nohup $JBOSS_DIR/bin/standalone.sh -Djboss.server.base.dir=$JBOSS_DIR/$NODENAME \
	-Djboss.node.name=$NODENAME -c standalone-ha.xml -b 0.0.0.0 -bmanagement=$JBOSS_MANAGER_IP \
	-Djboss.socket.binding.port-offset=100 > $JBOSS_LOG_DIR/$NODENAME.out 2>&1 &

환경 변수로 JAVA_HOME, NODENAME, JBOSS_DIR, JBOSS_LOG_DIR, JBOSS_MANAGER_IP를 설정해야 합니다.

본 스크립트를 기반으로 각각 해당 정보를 서버 정보에 맞게 기입한 후 기동합니다.

특이점으로는 nohup & $NODENAME.out 파일로 백그라운드 로그를 기입하도록 하였으며, 환경파일 종류 지정, 노드 지정, offset 지정 등으로 실제 standalone.xml or standalone-ha.xml 파일 설정을 최소화 하도록 쉘 스크립트에 정보를 입력하도록 하였습니다.

 

2. stop.sh 종료

다음으로 WildFly 다운 스크립트입니다.

#!/bin/bash
export JBOSS_DIR=/home/wildfly/wildfly13
export INSTANCE_IP=192.168.2.175
export INSTANCE_PORT=10090

sh $JBOSS_DIR/bin/jboss-cli.sh --connect controller=$INSTANCE_IP:$INSTANCE_PORT command=":shutdown(timeout=6000)"

환경 변수로 JBOSS_DIR, INSTANCE_IP, INSTANCE_PORT를 설정해야 하며, shutdown 시 timeout으로 Gracefully Shutdown을 구현하였습니다.


3. jboss cli 접속

다음으로 각종 CLI 명령어를 수행할 수 있는 WildFly admin 스크립트입니다.

#!/bin/bash
export JBOSS_DIR=/home/wildfly/wildfly13
export INSTANCE_IP=192.168.2.175
export INSTANCE_PORT=10090

sh $JBOSS_DIR/bin/jboss-cli.sh --connect controller=$INSTANCE_IP:$INSTANCE_PORT

마찬가지로 JBOSS_DIR, INSTANCE_IP, INSTANCE_PORT를 환경변수로 갖으며, WildFly down script에서 command 부분만 제거된 상태의 ShellScript입니다.

WildFly 상태 정보

1. thread info

/home/wildfly/wildfly13/bin/jboss-cli.sh --controller=[IP]:10090 --connect --command="/core-service=platform-mbean/type=threading:read-resource(include-runtime=true,recursive-depth=10)"

 

2. datasource info

/home/wildfly/wildfly13/bin/jboss-cli.sh --controller=[IP]:10090 --connect --command="/subsystem=datasources/data-source=ExampleDS/statistics=pool:read-resource(recursive=true, include-runtime=true)"


3. session info

/home/wildfly/wildfly13/bin/jboss-cli.sh --controller=[IP]:10090 --connect --command="/deployment=mes/subsystem=undertow:read-resource(include-runtime=true, recursive=true, recursive-depth=10)"

 
4. request info

/home/wildfly/wildfly13/bin/jboss-cli.sh --controller=[IP]:10090 --connect --command="/subsystem=undertow/server=default-server/http-listener=default:read-resource(recursive=true, include-runtime=true)"

 

위와 같이 WildFly의 Thread, Datasource, Session, Request 정보를 CLI 화면 상에서 확인할 수 있습니다.

728x90
반응형