언제나 잊어버리는..


~]#  ifup eth0

~]#  vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT=no -> yes


jUnit으로 HTTP기반 테스트 케이스를 작성 후 성공여부를 모니터링 하고 싶었다...



#!/bin/sh

LOG_FILE=../shell/TestCase2.log
LOG_FILE_FINISH=../shell/log/TestCase2.log

if [ -f $LOG_FILE ]; then
        echo "TestCase 현재 실행중임!"
        exit 1;
fi

java -classpath ...... org.junit.runner.JUnitCore com.test.TestCase2 > $LOG_FILE

/bin/rm -f $LOG_FILE_FINISH


FAILE_CNT_CNT=0
LOG_FILES=`cat $LOG_FILE`

for log_file in $LOG_FILES
do      
        tempS=`echo $log_file | grep "FAILURES!!!"`

        if [ "$tempS" != "" ]; then
                FAILE_CNT=1
                /bin/cp $LOG_FILE $LOG_FILE_FINISH$(date +%Y%m%d%H%M%S)   
                /bin/cp $LOG_FILE $LOG_FILE_FINISH
                break
        fi
done

if [ $FAILE_CNT = 0 ]; then
        /bin/rm -f $LOG_FILE_FINISH
fi

/bin/rm -f $LOG_FILE

# LOG_FILE_FINISH 경로에 파일이 존재 한다면 실패했다고 보면 됨...
  1. OpenSSL 설치되어 있다고 가정!!
  2. 키 생성
    • # openssl genrsa 1024 > key.pem
      • 여러가지 키생성 방법이 있으나 패스워드가 필요 없는 케이스
  3. 서명 생성
    • # openssl req -new -key key.pem > csr.pem
      • 다른 값들은 아무치나.. 아래것만 잘!!
        • Common Name (eg, your name or your server's hostname) []: 접속 도메인 주소(a.abc.com)
  4. 인증서 생성
    • # openssl req -key key.pem -x509 -nodes -sha1 -days 365 -in csr.pem -out crt.pem
  5. 키 저장소 생성
    • openssl pkcs12 -export -in crt.pem -inkey key.pem -out .keystore -name tomcat
      • WAS 에서 사용할 비밀번호 설정
  6. Tomcat server.xml 설정
    
    
  7. Tomcat 기동
  8. 환경
    • CentOs 6.4
    • Tomcat 5.5.36

[참고] http://dimdim.tistory.com/entry/openssl%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-Tomcat-HTTPS-%EC%84%A4%EC%A0%95-PKCS12-%ED%8F%AC%EB%A7%B7

Oracle에서 JDK를 다운로드 받으려면 라인센스 동의를 클릭하고 이루어진다.


그런데 Linux Console에서 받으려면 해당 이벤트를 발생시킬수 없으므로 어떻게 받아야 하나.. 미러 싸이트를 찾았는데 이런기능이 있군요.. ㅎㅎ


wget --no-cookies --no-check-certificate  --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-i586.tar.gz"


wget --no-cookies --no-check-certificate  --header "Cookie: oraclelicense=accept-securebackup-cookie; s_cc=true; s_nr=1401757717323; gpw_e24=no%20value; s_sq=%5B%5BB%5D%5D" "http://download.oracle.com/otn-pub/java/jdk/7u60-b19/jdk-7u60-linux-i586.tar.gz"


Cookie: 부분을 브라우저에서 다운받을때 생성되는 정보를 입력한다.

Tomcat 7.x + Jenkins ver. 1.500


[Maven tomcat plugin을 이용하여 deploy -> reload 방법]

tomcat/conf/tomcat-users.xml







pom.xml


	org.codehaus.mojo
	tomcat-maven-plugin
	1.1
	
		UTF-8
		war
		http://localhost/manager/text
		
		admin
		admin
	



젠킨스 프로젝트 설정 Build 부분 명령어에 tomcat:redeploy tomcat:reload


[Shell 실행하여 Tomcat 재시작 방법]


jenkins에서 빌드 스크립트 종료 후 아래 shell 실행하면 정상 start 후 Process를 종료해버려서 기껏 올라간 Tomcat이 종료되는 문제가 발생한다.

그럴 경우 해당 프로젝트 설정에서 "This build is parameterized" 체크 하고, "Add Parameter" 에서 BUILD_ID 에다가 아무 값이나 셋팅!!

#!/bin/bash

echo "Shutdown tomcat now...."
bash /usr/local/tomcat/bin/shutdown.sh
echo "tomcat is now terminated..."
sleep 10
if [ -z "`ps -eaf | grep java | grep /usr/local/tomcat/bin`" ]; then
        echo "Tomcat was terminated successfully."
else
        ps -eaf | grep java | grep /usr/local/tomcat/bin | awk '{print $2}' |
        while read PID
                do
                echo "Killing $PID... "
                kill -9 $PID
                echo "Tomcat is being shutdowned"
                done
fi

echo "tomcat restart now"
/usr/local/tomcat/bin/./startup.sh
AA=`ps -eaf | grep java | grep /usr/local/tomcat/bin`
echo "AA: $AA"
if [ -z "`ps -eaf | grep java | grep /usr/local/tomcat/bin`" ]; then
        echo "Error!!! Cannot start tomcat server."
else
        echo "Tomcat restart succcessfully. "
fi
echo "Job finished"

[참조 shell] http://ausgang.egloos.com/2947190

startup.sh

#!/bin/sh


. ./env.sh

export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.0.9
export CATALINA_BASE=/usr/local/tomcat/domains/$PROJECT_NM
export JAVA_OPTS="-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+DisableExplicitGC"
export CATALINA_OPTS=$CATALINA_OPTS" -Dfile.encoding=UTF-8"

cd $CATALINA_HOME/bin

./startup.sh


AA=`ps -eaf | grep java | grep $WAS_PATH`
echo "AA: $AA"
if [ -z "`ps -eaf | grep java | grep $WAS_PATH`" ]; then
        echo "Error!!! Cannot start tomcat server."
fi

while [ `netstat -an | grep :$WAS_PORT | grep LISTEN | wc | awk '{print $1}'` != 1 ]; do
        echo -ne "."
        sleep 1
done

echo "Check WAS Context Ready http://localhost:$WAS_PORT ..."

until [ "`curl --silent --show-error --connect-timeout 1 -I http://localhost:$WAS_PORT | grep 'Coyote'`" != "" ];
do
        echo -ne "."
        sleep 1
done

echo "Start WAS And Context $PROJECT_NM Tomcat Succcess"

shutdown.sh

#!/bin/sh


. ./env.sh

export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.0.9
export CATALINA_BASE=/usr/local/tomcat/domains/$PROJECT_NM

$CATALINA_HOME/bin/./shutdown.sh

I=0

until [ "`ps -eaf | grep java | grep $WAS_PATH`" == "" ];
do
        if [ $I == 5 ]; then
		ps -ef | grep java | grep "$WAS_PATH " | awk {'print "kill -9 " $2'} | sh -x
                break;
        fi

        let I=$I+1

        echo Stop WAS Finish? Sleeping for 2 seconds
        sleep 2
done


	Order deny,allow
	Deny from all
	Allow from 1.1.1.  # 1~255 활성

svn hook 기능을 이용하여 사용자별 커밋 리스트를 저장

post-commit 에 정의


#사용자 아이디를 구한다.(커밋정보=사용자, 시간 등)

INFO=$(svnlook info -r $REV $REPOS)

#IFS=-e "\n"

IFS=$"\n"

set -- $INFO

array=( $@ )


#현재 날짜를 구한다. YYYYMMDD

DATE_STRING=$(date +%Y%m%d)


#리비전 번호에 대한 커밋리스트를 구해 log파일에 Append한다.

svnlook changed -r $REV $REPOS >> "/home/svn/repos/hooks/svn_commit_${array[0]}_$DATE_STRING.log"

SVN 사용 중에.. "Head... 뭐라뭐라" 메시지 나오면서 커밋 등등 작동 안 하는 문제가 발생할때가 있다..(아주 간혹)

- 메시지를 적어놨어야 하는데.. 안 적어놨다..


이런 경우 최종 Commit 할때 무언가 꼬인 경우기 때문에 최종 이전 버전으로 되돌려 놓으면 해결 된다.


1. ../../"svn home"/"Repositories Name"/db/current     - 현재 최종 버전 정보를 가지고 있는 설정 파일

2. ../../"svn home"/"Repositories Name"/db/revs         - 하위 디렉토리에 Revision 정보들이 파일로 존재


2번 디렉토리에서 제일큰 Revision파일(가장 최근 파일)이 문제 시 되는 Revision 입니다.(예를 들어 227)

- 227 이라는 파일을 열어 보시면 대충 어디에서 커밋하다가 꼬인건지 파악 됩니다.

- 227 파일을 삭제(혹시 모르니 mv) 해놓으시고, 1번의 current 파일을 vi로 열어보시면 "227 ??? ???" 이런식으로 227이라는 문자열을 보실 수 있습니다.

이 227이라는 문자열을 그 이전 정보 226으로 고치고, SVN서버 재 시작 하시면 잘 될 것 입니다.

물리적 서버 한대에 컨테이너를 여러개 띄웠을 경우

[JEUSMain.xml]
    <node>
           <name>ddakker-v</name>
            .....
   <session-server>
 <type>primary</type>
 <resolution>60000</resolution>
 <connect-timeout>5000</connect-timeout>
 <read-timeout>20000</read-timeout>
 <passivation-to>-1</passivation-to>
 <removal-to>1800000</removal-to>
 <check-to>30000</check-to>
  </session-server>
           ... 
    </node>

[WEBMain.xml] 컨테이너 엔진에 각각
<web-container>
   ....
   <session-config>
      <distributable>true</distributable>  
      <shared>true</shared>
      <timeout>30</timeout>
      <reload-persistent>true</reload-persistent>
 <session-cookie>
<domain>.test.co.kr</domain>
 </session-cookie>
   </session-config> 
   <session-server>
      <primary-server>ddakker-v</primary-server>
      <!-- <backup-server>DDAKKER-COM</backup-server> 백업서버 있을 경우(별도의 물리적 서버에 있을때) --> 
   </session-server>
   ... 
</web-container> 

[물리적 서버가 또 있을 경우]
[/JEUS6.0/config/vhost.properties]

DDAKKER-COM=백업서버IP:9736

[백업서버 설정] 
[JEUSMain.xml]
    <node>
           <name>DDAKKER-COM</name>
            .....
   <session-server>
<type>backup</type>
<resolution>30000</resolution>
<thread-pool>
<min>10</min>
<max>20</max>
</thread-pool>
<connect-timeout>180000</connect-timeout>
<read-timeout>60000</read-timeout>
<passivation-to>1000</passivation-to>
<removal-to>3600000</removal-to>
<file-db-path>/data1/wonchul/sessiondata</file-db-path>
<file-db-name>sessiondata</file-db-name>
<min-hole>2000</min-hole>
<packing-rate>0.8</packing-rate>
<check-to>20000</check-to>
<backup-trigger>500</backup-trigger>
<recovery-mode>active</recovery-mode>
<replicated-server>ddakker-v</replicated-server>
</session-server>
           ... 
    </node> 

[WEBMain.xml]
다른 파일과 동일하게 설정

[물리적 서버가 또 있을 경우]
[/JEUS6.0/config/vhost.properties]

ddakker-v=:primary서버IP9736 

[제우스 웹 어드민]
http://localhost:9744/webadmin/app 

+ Recent posts