본문 바로가기
개발노트

[젠킨스] war파일 자동 압축해제 및 톰캣재실행 오류

by SoonNote 2023. 10. 19.
반응형

개발중인 사이트가  was1,2를 사용하고 was1의 트래픽이 높아지면 was2로 보내주는 방식으로 운영중인데

젠킨스로 관리하고있다

아래는 파이프라인 중 일부이다.

node{
    stage('initialize'){
        appName = 'ROOT'
        mvnHome = tool 'maven2'
		echo 'appName: ' + appName
    }
    stage('deploy_was2'){
        catchError(buildResult: 'SUCCESS', stageResult: 'SUCCESS') {
            sh "sudo zip -d /jenkins/workspace/build_test/target/"+ appName + ".war common/upload/sdk/* common/upload/readme.txt common/MagicLine4NPIZ/magicline4np_examples/*"
        }
        sh "sudo unzip -jo ~~~~~~~~~~~~~~~~~~~~"
        sh "sudo mkdir -p ~~~~~~~~~~~~~~~~~~~"
        sh "sudo mkdir -p ~~~~~~~~~~~~~~~~~~~~"
        sh "sudo zip /jenkins/workspace/build_test/target/"+ appName + ".war ./WEB-INF/classes/config/jdbc.properties ./WEB-INF/classes/config/sys.properties ./common/upload/config/upload.config.xml"
        sh "sudo chmod +x /jenkins/workspace/build_test/target/"+ appName + ".war"
        sh "sudo sshpass -p '패스워드' scp -o 'StrictHostKeyChecking=no' /jenkins/workspace/build_test/target/" + appName + ".war  test@was02:/tomcat/webapps/" + appName + ".war"
    }
    stage('deploy_was1'){
        sh "sudo chmod +x /jenkins/workspace/build_test/target/"+ appName + ".war"
        sh "sudo sshpass -p '패스워드' scp -o 'StrictHostKeyChecking=no' /jenkins/workspace/build_test/target/" + appName + ".war  test@was01:/tomcat/webapps/" + appName + ".war"
    }
}

was01,02에 war파일을 만들어서 scp명령어로 보내주는 방식이고 각각 was01,02에서는

tomcat server.xml설정으로

TOMCAT SERVER.XML설정

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
  • unpackWARs="true": WAR 파일을 압축 해제하여 사용할 수 있도록 설정
  • autoDeploy="true": WAR 파일의 변경을 감지하고 자동으로 배포하는 설정

을 통해 war파일이 변경되면 압축해제하고 자동 배포하는 것으로 진행중이다.

 

 

 어느순간 자꾸 이전버전의 페이지를 봤다는 문의가 자주오게 되었고

확인결과 was2의 소스가 최신버전이 아니여서 발생한것으로 보인다. .war파일은 최신버전으로 계속업데이트 되고 있지만 압축해제를 하지 않는 문제가 발생했고

 

find . ! -user tomcat

위 명령어로 소유자가 tomcat이 아닌 파일들을 찾았고

 

find . ! -user tomcat -exec chown tomcat:tomcat {} \;

위 명령어로 ROOT폴더 밑에있는 소유자를 tomcat으로 변경해주었고 강제로 톰캣을 재실행해주어 문제는 해결되었다.

 

다른 소유자가 있어 권한문제로 압축푸는게 진행되지 않았던것으로 추측은하고 있지만 운영중인 사이트이다보니 빠르게 처리하기에 바빠 자세한 테스트는 하지 못하였고 다음 반영을 할때 확인을 해볼 생각이다.

반응형