JBOSS Centos7 소스 컴파일 설치

이정빈·2022년 12월 7일
0

Jboss의 컴파일 설치

  1. 설치파일 다운로드

jboss-eap-7.3.0.zip -> 공식홈페이지에서 다운로드

  1. 설치파일 압축해제

unzip jboss-eap-7.2.0.zip -d /JBOSS

  1. JBoss 엔진 디렉터리에서 standalone 디렉터리 복사
  • 도메인 방식보다 standalone 모드 방식이 관리가 용이하여 standalone으로 구성
# mkdir /JBOSS/domains
# cd /JBOSS/jboss-eap-7.2
# cp -r standalone /JBOSS/domains/노드명
  • 구성도는 아래와 같다.
  1. 필요한 스크립트 파일 생성

/JBOSS/domains/test 생성 -> test 아래 /bin디렉터리 생성하여 필요한 sh 스크립트 파일을 작성

  • add-user.sh
#!/bin/sh
. ./env.sh
#JAVA_OPTS="$JAVA_OPTS -Djboss.domain.config.user.dir=../domain/configuration"
JAVA_OPTS="$JAVA_OPTS -Djboss.server.config.user.dir=$DOMAIN_BASE/$SERVER_NAME/configuration "
$JBOSS_HOME/bin/add-user.sh $@
  • env.sh
#!/bin/sh
DATE=`date +%Y%m%d_%H%M%S`
##### JBOSS Directory Setup #####
export JAVA_HOME=/usr/local/java       # 사용하는 JDK 버전에 맞게 설정
export JBOSS_HOME=/jboss/jboss-eap-7.3 # 설치된 JBOSS EAP 버전에 맞는 디렉터리 설정
export DOMAIN_BASE=/jboss/domains/     # 도메인 베이스 디렉터리 설정
export SERVER_NAME=test                # 생성한 서버명 설정
export LOG_HOME=/log/jboss/$SERVER_NAME # 로그 디렉터리 설정
export ACCESS_LOG_HOME=$LOG_HOME/access-log/

##### Configration File #####
export CONFIG_FILE=standalone-ha.xml    # 환경 설정 파일 등록
export NODE_NAME=$SERVER_NAME           # 생성한 노드명 설정
export PORT_OFFSET=100                  # 포트 OFFSET 값 등록(노드 확장할때 사용)

##### JBOSS USER #####
export JBOSS_USER=jb7                   # jboss 유저 등록

##### Bind Address #####
export BIND_ADDR=172.27.241.201         # etho0의 네트워크 IP 값
#export MULTICAST_ADDR=230.1.0.2        # 멀티 캐스트 ip 설정(같은 클러스터간 동일값)
#export MULTICAST_PORT=55200
#export JMS_MULTICAST_ADDR=230.2.0.1
#export MODCLUSTER_MULTICAST_ADDR=224.0.1.105
export MGMT_ADDR=$BIND_ADDR
export CONTROLLER_IP=$MGMT_ADDR
let CONTROLLER_PORT=9990+$PORT_OFFSET
export CONTROLLER_PORT
export LAUNCH_JBOSS_IN_BACKGROUND=true

##### JBoss System module and User module directory #####
export JBOSS_MODULEPATH=$JBOSS_HOME/modules:$JBOSS_HOME/modules.ext:$DOMAIN_BASE/$SERVER_NAME/lib/ext
# JVM Options : Server
export JAVA_OPTS="-server $JAVA_OPTS"

# JVM Options : Memory
export JAVA_OPTS=" $JAVA_OPTS -Xms512m"
export JAVA_OPTS=" $JAVA_OPTS -Xmx512m"
#export JAVA_OPTS=" $JAVA_OPTS -XX:PermSize=256m"   // jdk 1.7일때 사용
#export JAVA_OPTS=" $JAVA_OPTS -XX:MaxPermSize=256m" // jdk 1.7일때 사용
export JAVA_OPTS=" $JAVA_OPTS -XX:MetaspaceSize=256m"
export JAVA_OPTS=" $JAVA_OPTS -XX:MaxMetaspaceSize=256m"
export JAVA_OPTS=" $JAVA_OPTS -Xss256k"    # stack size

### Parallel GC OPTIONS ###
export JAVA_OPTS=" $JAVA_OPTS -XX:+UseParallelOldGC "
export JAVA_OPTS=" $JAVA_OPTS -XX:+UseParallelGC "
#export JAVA_OPTS=" $JAVA_OPTS -XX:+UseConcMarkSweepGC "
#export JAVA_OPTS=" $JAVA_OPTS -XX:+UseG1GC -XX:MaxGCPauseMillis=1000 "

# JVM Option GCi log, Stack Trace, Dump
export JAVA_OPTS=" $JAVA_OPTS -verbose:gc"
export JAVA_OPTS=" $JAVA_OPTS -XX:+PrintGCTimeStamps "
export JAVA_OPTS=" $JAVA_OPTS -XX:+PrintGCDetails "
export JAVA_OPTS=" $JAVA_OPTS -XX:+PrintHeapAtGC"
export JAVA_OPTS=" $JAVA_OPTS -Xloggc:$LOG_HOME/gclog/gc_$DATE.log "
export JAVA_OPTS=" $JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError "
export JAVA_OPTS=" $JAVA_OPTS -XX:HeapDumpPath=$LOG_HOME/gclog/java_pid_$DATE.hprof"
export JAVA_OPTS=" $JAVA_OPTS -XX:+DisableExplicitGC "
export JAVA_OPTS=" $JAVA_OPTS -XX:+ExplicitGCInvokesConcurrent "
export JAVA_OPTS=" $JAVA_OPTS -Djava.net.preferIPv4Stack=true"
export JAVA_OPTS=" $JAVA_OPTS -Dorg.jboss.resolver.warning=true"
export JAVA_OPTS=" $JAVA_OPTS -Djboss.modules.system.pkgs=org.jboss.byteman"
export JAVA_OPTS=" $JAVA_OPTS -Djava.awt.headless=true"

#export   JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"
#export   JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=8086"
#export   JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
#export   JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
export JAVA_OPTS=" $JAVA_OPTS -Djboss.node.name=$NODE_NAME"
export JAVA_OPTS=" $JAVA_OPTS -Djboss.server.base.dir=$DOMAIN_BASE/$SERVER_NAME"
export JAVA_OPTS=" $JAVA_OPTS -Djboss.server.log.dir=$LOG_HOME"
export JAVA_OPTS=" $JAVA_OPTS -Daccesslog.dir=$ACCESS_LOG_HOME"
export JAVA_OPTS=" $JAVA_OPTS -Djboss.socket.binding.port-offset=$PORT_OFFSET"
export JAVA_OPTS=" $JAVA_OPTS -Djboss.bind.address.management=$MGMT_ADDR"
export JAVA_OPTS=" $JAVA_OPTS -Djboss.bind.address=$BIND_ADDR"
#export JAVA_OPTS=" $JAVA_OPTS -Djboss.bind_addr=$MULTICAST_ADDR"
#export JAVA_OPTS=" $JAVA_OPTS -Djboss.default.multicast.address=$MULTICAST_ADDR"
#export JAVA_OPTS=" $JAVA_OPTS -Djboss.default.multicast.port=$MULTICAST_PORT"
export JAVA_OPTS=" $JAVA_OPTS -Dserver.mode=local"

# jgroups setting
export JAVA_OPTS=" $JAVA_OPTS -Djboss.bind.address.private=$BIND_ADDR"
export JAVA_OPTS=" $JAVA_OPTS -Djboss.default.jgroups.stack=tcpping"
#export JAVA_OPTS=" $JAVA_OPTS -Djgroups.tcpping.initial_hosts=192.168.0.30[7600],192.168.0.30[7700],192.168.0.30[7800]"
export JAVA_OPTS=" $JAVA_OPTS -Djgroups.host1.address=10.65.40.121"
export JAVA_OPTS=" $JAVA_OPTS -Djgroups.host1.port=7600"
export JAVA_OPTS=" $JAVA_OPTS -Djgroups.host2.address=10.65.40.121"
export JAVA_OPTS=" $JAVA_OPTS -Djgroups.host2.port=7700"

#export JAVA_OPTS=" $JAVA_OPTS -Djgroups.tcpgossip.hosts=192.168.0.56[12001] "

# Use log4j in application
#export JAVA_OPTS=" $JAVA_OPTS -Dorg.jboss.as.logging.per-deployment=false "

echo "================================================"
echo "JBOSS_HOME=$JBOSS_HOME"
echo "DOMAIN_BASE=$DOMAIN_BASE"
echo "SERVER_NAME=$SERVER_NAME"
echo "CONFIG_FILE=$CONFIG_FILE"
echo "BIND_ADDR=$BIND_ADDR"
echo "PORT_OFFSET=$PORT_OFFSET"
#echo "MULTICAST_ADDR=$MULTICAST_ADDR"
echo "CONTROLLER=$CONTROLLER_IP:$CONTROLLER_PORT"
echo "================================================"
  • start.sh
#!/bin/sh
DATE=`date +%Y%m%d%H%M%S`
. ./env.sh
PID=`ps -ef | grep java | grep "=$SERVER_NAME " | awk '{print $2}'`
echo $PID

if [ e$PID != "e" ]
then
    echo "JBoss SERVER - $SERVER_NAME is already RUNNING..."
    exit;
fi

UNAME=`id -u -n`
if [ e$UNAME != "e$JBOSS_USER" ]
then
    echo "Use $JBOSS_USER account to start JBoss SERVER - $SERVER_NAME..."
    exit;
fi

echo $JAVA_OPTS

if [ ! -d "$LOG_HOME/nohup" ];
then
    mkdir -p $LOG_HOME/nohup
fi

if [ ! -d "$LOG_HOME/gclog" ];
then
    mkdir -p $LOG_HOME/gclog
fi

if [ -f $LOG_HOME/nohup/$SERVER_NAME.out ]
then
    mv $LOG_HOME/nohup/$SERVER_NAME.out $LOG_HOME/nohup/$SERVER_NAME.out.$DATE
fi

nohup $JBOSS_HOME/bin/standalone.sh -DSERVER=$SERVER_NAME -c $CONFIG_FILE >> $LOG_HOME/nohup/$SERVER_NAME.out  2>&1 &

#if [ e$1 = "enotail" ]
#then
#    echo "Starting... $SERVER_NAME"
#    exit;
#fi
  • stop.sh
#!/bin/sh
DATE=`date +%Y%m%d%H%M%S`
. ./env.sh
PID=`ps -ef | grep java | grep "=$SERVER_NAME " | awk '{print $2}'`
echo $PID

if [ e$PID != "e" ]
then
    echo "JBoss SERVER - $SERVER_NAME is already RUNNING..."
    exit;
fi

UNAME=`id -u -n`
if [ e$UNAME != "e$JBOSS_USER" ]
then
    echo "Use $JBOSS_USER account to start JBoss SERVER - $SERVER_NAME..."
    exit;
fi

echo $JAVA_OPTS

if [ ! -d "$LOG_HOME/nohup" ];
then
    mkdir -p $LOG_HOME/nohup
fi

if [ ! -d "$LOG_HOME/gclog" ];
then
    mkdir -p $LOG_HOME/gclog
fi

if [ -f $LOG_HOME/nohup/$SERVER_NAME.out ]
then
    mv $LOG_HOME/nohup/$SERVER_NAME.out $LOG_HOME/nohup/$SERVER_NAME.out.$DATE
fi

nohup $JBOSS_HOME/bin/standalone.sh -DSERVER=$SERVER_NAME -c $CONFIG_FILE >> $LOG_HOME/nohup/$SERVER_NAME.out  2>&1 &

#if [ e$1 = "enotail" ]
#then
#    echo "Starting... $SERVER_NAME"
#    exit;
#fi
[root@oracle bin]# ^C
[root@oracle bin]# cat stop.sh
#!/bin/sh
. ./env.sh
PID=`ps -ef | grep java | grep "=$SERVER_NAME " | awk '{print $2}'`
echo $PID
if [ e$PID == "e" ]
then
    echo "JBoss SERVER - $SERVER_NAME is Not RUNNING..."
    exit;
fi
$JBOSS_HOME/bin/jboss-cli.sh --connect --controller=$CONTROLLER_IP:$CONTROLLER_PORT --command=:shutdown
  • status.sh
#!/bin/sh
. ./env.sh
ps -ef | grep java | grep --color "SERVER=$SERVER_NAME "
  • env.properties
org.apache.catalina.connector.URI_ENCODING=UTF-8  # 언어 설정
org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING=true
org.apache.coyote.ajp.DEFAULT_CONNECTION_TIMEOUT=60000 # 연결 시간 설정
org.apache.coyote.http11.DEFAULT_CONNECTION_TIMEOUT=60000
org.apache.coyote.http11.Http11Protocol.MAX_HEADER_SIZE=8192
org.apache.coyote.http11.Http11Protocol.SERVER=LAB1
file.encoding=UTF-8
jvmRoute=7.2_node11
UseJK=true
  1. 관리자 등록
# cd /JBOSS/jboss-eap-7.2/bin
 
#./add-user.sh
 
a) Management User (mgmt-user.properties)
 
b) Application User (application-user.properties)
 
(a) : a 선택 후 진행

cp -arpf /jboss디렉터리/mgmt-users,groups.properties /jboss/노드/configuration/ 복사
유저 생성하여 소유자 및 권한 이전
chown -R /jboss/
chmod 750 /jboss/domains/노드명/bin/*
profile
WAS Engineer, Cloud Engineer(지망)

0개의 댓글