Tomcat 7.x + Jenkins ver. 1.500
[Maven tomcat plugin을 이용하여 deploy -> reload 방법]
tomcat/conf/tomcat-users.xml
1 2 3 4 5 | < role rolename = "manager-gui" ></ role > < role rolename = "manager-script" ></ role > < role rolename = "admin" ></ role > < role rolename = "manager" ></ role > < user username = "admin" password = "admin" roles = "admin,manager,manager-gui,manager-script" ></ user > |
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 | < plugin > < groupid >org.codehaus.mojo</ groupid > < artifactid >tomcat-maven-plugin</ artifactid > < version >1.1</ version > < configuration > < charset >UTF-8</ charset > < mode >war</ mode > < path ></ path > < username >admin</ username > < password >admin</ password > </ configuration > </ plugin > |
젠킨스 프로젝트 설정 Build 부분 명령어에 tomcat:redeploy tomcat:reload
[Shell 실행하여 Tomcat 재시작 방법]
jenkins에서 빌드 스크립트 종료 후 아래 shell 실행하면 정상 start 후 Process를 종료해버려서 기껏 올라간 Tomcat이 종료되는 문제가 발생한다.
그럴 경우 해당 프로젝트 설정에서 "This build is parameterized" 체크 하고, "Add Parameter" 에서 BUILD_ID 에다가 아무 값이나 셋팅!!
#!/bin/bash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #!/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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/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 |