2021. 9. 15. 11:03ㆍJenkins
##아래는 여러가지 이유로 Maven 빌드에 실패하고..class파일과 jsp파일 등 자주 교체되는 부분들만이라도 자동화 반영해보고자 테스트했던 부분들이다.
기본적은 골자는 윈도우에서 심볼릭링크(mklink)를 통해 이클립스에서 생성하는 class파일들을 젠킨스의 임시저장소로 연결해두고 해당파일들을 빌드했다는 가정하에 SSH로 리눅스서버로 옮겨서 반영테스트를 한 경우이다.
##
C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\classSnip 현재 테스트중인 로컬 젠킨스 경로
Maven build가 정상적으로 작동안해서 일단 로컬환경에서 내것만 가능한지 테스트할 예정
절대경로를 인식못해서 mklink로 심볼릭링크를 만들고 기존에 사용하는 jsp파일이나 기타등등을 변경 후 적용되는지 확인해볼예정. <<로컬에 존재하는 파일들을 윈도우용 mklink로 적용하니 잘 가져감.
##적용시켜볼 파일들 공통 클래스파일,sql파일, 사용자 관리자 jsp파일 및 sitemesh 적용되는 jsp파일들 기타 설정파일은 민감하니 안옮길예정##
클래스파일(로컬)
mklink /d myitgcms C:\CUBE307\work\snip\SNIP_MNGR\target\classes\egovframework\itgcms
Sql파일(로컬)
mklink /d mysqlmap C:\CUBE307\work\snip\SNIP_MNGR\target\classes\egovframework\sqlmap
사용자jsp(로컬)
mklink /d userjsp C:\CUBE307\work\snip\SNIP_USR\src\main\webapp\WEB-INF\jsp
사용자sitemesh(로컬)
mklink /d usersitemesh C:\CUBE307\work\snip\SNIP_USR\src\main\webapp\WEB-INF\sitemesh
관리자 jsp(로컬)
mklink /d mngrjsp C:\CUBE307\work\snip\SNIP_MNGR\src\main\webapp\WEB-INF\jsp
관리자 sitemesh (로컬)
mklink /d mngrsitemesh C:\CUBE307\work\snip\SNIP_MNGR\src\main\webapp\WEB-INF\sitemesh
사용자(젠킨스 svn기준!!!)
mklink /d userjsp C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\classSnip\SNIP_USR\src\main\webapp\WEB-INF\jsp
mklink /d usersitemesh C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\classSnip\SNIP_USR\src\main\webapp\WEB-INF\sitemesh
관리자(젠킨스 svn기준!!!)
mklink /d mngrjsp C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\classSnip\SNIP_MNGR\src\main\webapp\WEB-INF\jsp
mklink /d mngrsitemesh C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\classSnip\SNIP_MNGR\src\main\webapp\WEB-INF\sitemesh
Mklink /d egovframework C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\snip\SNIP_LINK\java\egovframework
리눅스에서 스크립트 진행예상 스토리
해당 폴더로 이동 (복사는 해당폴더에서 할 필요없음 불필요)
cd /data/deploy/test
##현재 성남은 class파일,sql파일을 공통으로 사용중! 관리자만 교체해주면됨##
- 원복용 만들기 해당폴더로 먼저 이동 후
- 기존 폴더 백업(기존폴더명+날짜포맷)
- 각 폴더들을 매칭되는 곳으로 cp <<변경!
- Cp말고 mv로변경! 최초 해당폴더로 이동 후 mv로 모두 각각 위치해야하는 폴더로 이동시킴.(cp로하면 기존파일들이 남아버림 rm-rf로 제거도 가능하지만 운영서버에서 rm기능을 수행하기에는 찝찝함
##최초 ssh로 옮긴파일 폴더
cd /data/deploy/test
mv /data/deploy/test/usersitemesh /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/USER/webapps/WEB-INF
mv /data/deploy/test/userjsp /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/USER/webapps/WEB-INF
mv /data/deploy/test/mngrsitemesh /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/MNGR/webapps/WEB-INF
mv /data/deploy/test/mngrjsp /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/MNGR/webapps/WEB-INF
mv /data/deploy/test/mysqlmap /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/MNGR/webapps/WEB-INF/classes/egovframework
mv /data/deploy/test/myitgcms /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/MNGR/webapps/WEB-INF/classes/egovframework
#클래스파일
cd /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/MNGR/webapps/WEB-INF/classes/egovframework
mv itgcms /data/deploy/mybackup/classes/itgcms_`date +%Y%m%d%H%M%S`
mv myitgcms itgcms
#Sql파일
mv sqlmap /data/deploy/mybackup/sql/sqlmap_`date +%Y%m%d%H%M%S`
mv mysqlmap sqlmap
#관리자 Jsp파일
cd /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/MNGR/webapps/WEB-INF
mv jsp /data/deploy/mybackup/mngr/jsp_`date +%Y%m%d%H%M%S`
mv mngrjsp jsp
#관리자 sitemesh jsp파일
mv sitemesh /data/deploy/mybackup/mngr/sitemesh_`date +%Y%m%d%H%M%S`
mv mngrsitemesh sitemesh
#사용자 Jsp파일
cd /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/USER/webapps/WEB-INF
mv jsp /data/deploy/mybackup/user/jsp_`date +%Y%m%d%H%M%S`
mv userjsp jsp
#사용자 sitemesh jsp파일
mv sitemesh /data/deploy/mybackup/user/sitemesh_`date +%Y%m%d%H%M%S`
mv usersitemesh sitemesh
##적용 안되어있는 부분 기존 cp로 파일 옮기기, 기존파일 삭제하기 적용X##
#cp -r /data/deploy/test/itgcms /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/MNGR/webapps/WEB-INF/classes/egovframework
#cp -r /data/deploy/test/sqlmap /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/MNGR/webapps/WEB-INF/classes/egovframework
#cp -r /data/deploy/test/mngrjsp /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/MNGR/webapps/WEB-INF
#cp -r /data/deploy/test/mngrsitemesh /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/MNGR/webapps/WEB-INF
#cp -r /data/deploy/test/userjsp /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/USER/webapps/WEB-INF
#cp -r /data/deploy/test/usersitemesh /data/deploy/WEB_ROOT/was6/snip.sitegood.co.kr/USER/webapps/WEB-INF
#최초로 옮긴파일들 모두 제거
# cd /data/deploy/test
#해당 디렉토리내 파일,폴더 다 삭제!
# rm -rf ./*
#찝찝하면 각각 지정해서 삭제
특정폴더에 backup파일들을 다 모아둠!
##현재 방법의 문제점##
- 로컬환경전용으로 셋팅되어있는 부분이 존재한다면 들고가버린다.
Ex) jsp에서 window.open(내부에 url주소가 로컬용이라면 그대로 가져가버림)
- 만약 클래스파일에서도 동일하다면 같은부분이 문제가될수있음.
##로컬jsp을 가져오지말고 svn으로 가져온것중에 jsp파일을 가져가자!!##
##개발서버에 심볼릭링크 걸려있는것도 동일하게 로컬리눅스에 환경 맞추고 해봤더니 정상적으로 확인하고 가져오고 함!! 문제없음##
## class파일중에 로컬주소가 되어있는부분이 문제가될 가능성존재함! 아는부분이면 해당부분 수정후 반영하면되고 아니라면...개별로!!!##
'Jenkins' 카테고리의 다른 글
젠킨스(Jenkins) 파이프라인(Pipeline)을 통한 배포 작업 수행기(Param, Input, Google Chat,Revision 선택) (1) | 2024.06.20 |
---|---|
스크립트로 ssh접근 후 파일변경 (0) | 2021.09.15 |
Maven Build관련 오류 및 log보는법 정리 (0) | 2021.09.15 |
SVN선택지 추가방법 (0) | 2021.09.15 |
젠킨스 설치방법 및 기타 주의사항들 (0) | 2021.09.15 |