젠킨스 Build 못해도 리눅스 서버에 적용시키기..테스트

2021. 9. 15. 11:03Jenkins

반응형

##아래는 여러가지 이유로 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파일을 공통으로 사용중! 관리자만 교체해주면됨##

 

  1. 원복용 만들기 해당폴더로 먼저 이동
  2. 기존 폴더 백업(기존폴더명+날짜포맷)
  3. 폴더들을 매칭되는 곳으로 cp <<변경!
  4. 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파일들을 모아둠!

 

##현재 방법의 문제점##

 

  1. 로컬환경전용으로 셋팅되어있는 부분이 존재한다면 들고가버린다.

Ex) jsp에서 window.open(내부에 url주소가 로컬용이라면 그대로 가져가버림)

  1. 만약 클래스파일에서도 동일하다면 같은부분이 문제가될수있음.

 

##로컬jsp 가져오지말고 svn으로 가져온것중에 jsp파일 가져가자!!##

##개발서버에 심볼릭링크 걸려있는것도 동일하게 로컬리눅스에 환경 맞추고 해봤더니 정상적으로 확인하고 가져오고 !! 문제없음##

## class파일중에 로컬주소가 되어있는부분이 문제가될 가능성존재! 아는부분이면 해당부분 수정후 반영하면되고 아니라면...개별로!!!##

반응형