반응형
개발중인 사이트가 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설정으로

<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으로 변경해주었고 강제로 톰캣을 재실행해주어 문제는 해결되었다.
다른 소유자가 있어 권한문제로 압축푸는게 진행되지 않았던것으로 추측은하고 있지만 운영중인 사이트이다보니 빠르게 처리하기에 바빠 자세한 테스트는 하지 못하였고 다음 반영을 할때 확인을 해볼 생각이다.
반응형
'개발노트' 카테고리의 다른 글
| [NICE인증] IBMJCE에러 com.ibm.crypto.provider.IBMJCE (2) | 2024.01.31 |
|---|---|
| [supabase] Supabase edge functions 사용해보기 (0) | 2023.11.15 |
| [mimetype] 아이폰에서 다운로드시 .exe붙는 문제 (0) | 2023.10.11 |
| [JAVA] API만들기 & 원하는 값만 가져오기 (0) | 2023.09.20 |
| [Mysql] MySQL manager or server PID file could not be found! 오류 (0) | 2023.08.03 |