20140527 Jenkins 재시작 후 데이터 초기화 증상 해결

사내에서 사용하던 Jenkins가 구동되고 있는 서버가 정전으로 재가동 후 최초 설치상태로 초기화되는 현상이 나타났다.

멘붕!!!

Jenkins의 이런 증상을 처음 경험한 나로서는 어찌해야하는 물어볼 사람도 없고 인터넷 검색으로 뒤지기 시작한다.
그러다가 [Jenkins 관리 - 환경설정] 부분 상단에 HOME Directory 라는 항목의 값이 눈에 들어온다.

/{USER_HOME}/.hudson

이녀석! 이상하다! 내가 쓰고 있는 건 jenkins 인데!?

라는 생각과 함께 JENKINS_HOME 과 관련된 검색에 들어간다. +_+) 그러다가 아래 녀석을 찾았다.

여기서 말하는 JENKINS_HOME은 젠킨스가 실행되는 경로가 아닌, 젠킨스가 사용자 디렉토리에 생성한 ~/.jenkins 폴더를 가리키는 것이었다.
이후 이를 해결하는 방법은 어려움이 없었다. 환경설정에서 ‘홈 디렉토리Home Directory’ 항목의 오른쪽 물음표(?)를 클릭하면 JENKINS_HOME을 WAS에 설정하라는 안내를 한다.

Jenkins stores all the data files inside this directory in the file system. You can change this by either:
    1. Using your web container's admin tool to set the **JENKINS_HOME** environment entry.
    2. Setting the environment variable **JENKINS_HOME** before launching your web container.
    3. (Not recommended) modifying web.xml in jenkins.war (or its expanded image in your web container).
This value cannot be changed while Jenkins is running. This entry is mostly for you to make sure that your configuration is taking effect.

이후 문제는 쉽게해결 가능하다. 톰캣 서버의 ‘./bin’ 폴더에서 catalina.sh를 열어서

set JENKINS_HOME=/{USER_HOME}/.jenkins

항목만 추가해주고 톰캣을 구동시켜주면 끝이났다. +_+)b That's OK~!

이 문제를 해결하면서 젠킨스의 버전도 스리슬쩍 1.564 버전으로 변경했다.

데이터가 분리되어 있으니 젠킨스를 업그레이드 해도 별문제가 없을 거라고 생각했다.

찍었는데 맞았다!


 

 작업전 확인사항 

 

  • 사용자 폴더 밑에 '~/.jenkins' 라는 폴더가 있는지 확인
    • 젠킨스 설정 데이터가 저장되는 폴더다
  • 젠킨스를 구동하는 WAS의 실행환경변수로 'JENKINS_HOME'이 추가되어 있는지 확인



JDK8 의 람다 표현식에 대해서 어떤 글보다 잘 설명되어있다고 추천된 글.

http://blog.hartveld.com/2013_03_01_archive.html

JDK8 에서 가장 큰 특징이라면 Lamda expression 이라고 하는데...

슬슬 컴퓨터에 JDK8 설치하고 람다 표현식에 대해서 학습을 진행해야겠다.


그런데... 의욕이 안생겨. Orz...

회사 그만두고 노는 동안 살펴볼 수 있을까나?

공부하면서 저 글 번역해볼까?


[File - New - Spring Starter Project]를 선택하면 다음의 창이 뜬다. 

다음[Next]을 누르면 spring starter를 다운로드 받는다. Spring Boot를 이용해서 starter 프로젝트를 다운로드 받고 프로젝트를 구성한다.

 


이 spring-starter의 핵심은 @EnableAutoConfiguration 이다.

이 Spring starter 의 핵심은 @EnableAutoConfiguration 이지 싶다. 프로젝트에 사용되는 @Annotation의 타입을 스캔해서 관련된 라이브러리를 자동으로 추가하여 구동시키는 것으로 보여진다. 오늘 잠깐 살펴보며 짐작한 것은 그렇다.

[Run as - Spring Boot App]을 선택하면 자동으로 실행된다.


spring.io에서 Spring을 이해할 수 있도록 잘 작성된 가이드를 제공한다.

STS 자체에서도 spring.io/guide에서 제공하는 콘텐츠들을 바로 다운로드 받아서 열어볼 수 있는 기능을 제공한다.


1. 사용방법은 [File - New - Import Spring Getting Started Content]를 선택한다.

2. 자신이 받고 싶은 튜토리얼을 선택한다. 이때, 비동기식으로 선택받은 프로젝트를 다운로드 받는 과정을 진행하기 때문에, 하단에 있는 [Finish] 버튼이 바로 활성화되지는 않으니 잠시 기다린다. 'Maven'이나 'Gradle' 중 하나를 선택하면 되는데, 몇몇 프로젝트들은 build.gradle 파일이 존재하지 않는다는 메시지와 함께 [Finish] 버튼이 비활성화된다.


3. 선택한 튜토리얼 다운로드가 끝나고 나면 프로젝트가 임포트import 되고 내부 브라우저창으로 해당 튜토리얼관련 페이지가 뜬다.


이렇게 간단하게 스프링과 관련된 튜토리얼을 다운로드 받고 살펴볼 수 있다. 최근에 작성된 프로젝트의 경우에는 Spring boot를 이용해서 바로 실행가능한 형태를 취하고 있다.

얼마전, Oracle에서 JDK8 을 정식 출시했다. 가장 큰 변화라면 람다 표현식(Lamda expression)일텐데...

차근차근 학습해보도록 하자.


http://www.oracle.com/technetwork/java/javase/downloads/index.html



 

 JDK8 Release note 

 

http://www.oracle.com/technetwork/java/javase/8train-relnotes-latest-2153846.html



바로 JDK8을 적용하기보다는 JDK8u10 까지는 차분히 기다리면서 학습을 하며 준비하는 것이 좋아보인다고 한다.

   파란색 구분선!  
 

* 참고: OpenJDK 8 : http://openjdk.java.net/projects/jdk8/


+ Recent posts