Pipeline으로 Job을 실행하고 실행결과에 따라 분기처리를 하고 싶은 경우가 생겼다. 예를 들면 a라는 job이 실행이 되었고 이 job이 성공을 하면 b라는 job을 수행하고 실패를 하면 c라는 job을 수행하도록 하고 싶다. 이렇게 구성을 하는건 여러가지 방법이 존재하지만 내가 좋아하는 if else 구문을 사용해서 구성해보겠다. 대략 이런 그림이다. pipeline project를 하나 만들어서 이를 구성해보자. Pipeline project 생성 새로운 Item 을 눌러서 Pipeline을 지원하는 프로젝트를 생성한다. Pipeline job을 하나 생성하면 위와 같이 groovy 문법을 사용하여 Pipeline Script를 작성할 수 있다. Pipeline Script 작성 node{ s..
엄청나게 편리한 Jenkins이지만 불편한점도 있다. 예를 들자면 Jenkins를 이용해 batch를 처리할때 분명 batch job은 내가 원하는대로 수행되지 않고 Error가 발생했는데 Jenkins job은 이를 Success 처리를 하는 경우이다. 오류가 발생을 하면 slack이든 email이든 noti를 보내야 하는데 오류가 발생하지 않았다고 판단하여 아무런 후속조치를 하지 않는다. 이럴 경우에 Log Parser 라는 Jenkins plugin을 사용해서 해결할 수 있다. 설치부터 어떻게 사용하는지 알아보자. Jenkins Log Parser 설치 Jenkins 관리 > 플러그인 관리 > 설치 가능 > Log Parser 선택 > 재시작 없이 설치하기 Log Parser Rule 파일 생성 (..
우리가 아는 jenkins의 익숙한 모습이다. 물론 과거 hudson부터 써온지라 이정도 디자인만 되어도 참 훌륭하다고 생각한다. 하지만 뭔가 개발은 하기 싫고 이런걸 꾸미고 싶은 날도 있다. 어제는 티스토리 코드블럭 꾸미는데 오랫만에 css를 다루니 또 참 재미있었다.. 오늘도 개발하기 싫어서(사실은 맨날...) jenkins에 새로운 테마를 적용해보려한다. 간단하다. Jenkins 관리 > Plugin Manager > 설치 가능 tab > Simple Theme 를 검색 후 설치. 혹시나 폐쇄망이라 설치가 안된다면 다음 글을 참고하자. Jenkins 폐쇄망에서 plugin 설치하기 Jenkins가 설치되어 있는 서버가 외부와의 통신이 되는 환경이면 좋겠지만 그렇지 않은 환경이 여지껏 더 많았다. 따..
Jenkins가 설치되어 있는 서버가 외부와의 통신이 되는 환경이면 좋겠지만 그렇지 않은 환경이 여지껏 더 많았다. 따라서 Jenkins를 설치할때도 이미 많이 사용하고 있는 플러그인들을 다 가지고 있는 Jenkins를 통으로 설치하는 경우가 많았다. 하지만 플러그인이 추가로 더 필요한 경우는 분명히 생긴다. 이럴때 어떻게 플러그인을 설치하는지 알아보자. 폐쇄망이라면 Jenkins 앱 내에 있는 plugin manager를 사용하지 못하기 때문에 플러그인을 수동으로 다운받아야한다. Index of /download/plugins updates.jenkins-ci.org 이곳에 들어가면 Jenkins에서 사용가능한 플러그인들이 다 있다. 원하는 플러그인을 다운로드 받는다. 다운로드를 받으면 이런식으로 .h..
Jasypt를 사용해서 암호화를 하는 방법은 지난번에 포스팅을 했다. Spring properties 파일의 내용 암호화하기 (with Jasypt) properties 파일을 구성할때 암호화가 필요한 부분들이 존재한다. 가장 대표적인 예가 datasource의 username, password 부분이다. 이것들은 정말 다양한 방법을 통해서 암호화가 되고 있지만 요즘 추세는 d oingdaddy.tistory.com 이때 특정 문자열에 대해 암호화를 하기 위해서 여러가지 방법이 있다고 했고 그중 CommandLineRunner를 implements해서 Springboot Main class에서 run method를 구현하는 방법으로 암호화된 문자열을 구했다. 하지만 이것도 번거롭다. 어딘가에 Jasypt..
일단은 이 둘을 연결하기 전에 webhook이라는 개념부터 알고 넘어가자. webhook이란 간단히 말해 서버(이글로 치면 gitlab)에서 어떤 이벤트가 발생했을때 클라이언트(jenkins)에게 알릴수 있는 메커니즘이라고 이해하면 된다. 서버가 클라이언트를 호출하여 역방향 API 라고도 한다. 즉 gitlab에서 어떤 변경사항(push)이 생기게 되면 이 정보를 가지고 jenkins의 특정 job과 연동을 할수 있다는 것이다. webhook을 설정하기 전에 일단은 jenkins와 gitlab을 연결하는 작업부터 하자. gitlab plugin은 설치가 되어있다고 가정한다. Jenkins 관리 > 시스템설정 으로 들어가면 Gitlab 을 설정하는 부분이 있다. 이곳에 앞으로 jenkins에서 접근할 co..
maven project를 수행할때 필요한 settings.xml 파일은 보통은 MAVEN_HOME/conf 밑에 존재한다. 이곳은 전역 설정을 위한 곳이고 /USER_HOME/.m2/settings.xml 이렇게 지역설정을 할 수 있다. 하지만 이런 설정들을 꼭 서버에 들어가서 직접 수행하지 않고도 jenkins내에서 간단하게 수행할 수 있다. 시작점은 Jenkins 관리 > Managed files 이다. 아래 설명에도 나와있듯이 settings.xml for maven 을 할수 있다고 한다. Managed files > Add a new Config 를 통해서 들어가면 jenkins에서 관리할 수 있는 여러가지 파일들이 나온다. 지금은 settings.xml 파일에 대한 내용을 다룰 것으므로 봐야할..
windows 서버는 기본적으로 ssh를 지원을 하지 않는다. 따라서 windows 서버에 배포를 하기 위해서는 openssh 를 설치하거나 ftp로 배포를 해야 한다. 이중 ftp를 사용하여 배포하는것을 설명하려고 한다. 일단 windows 서버에 ftp 설치를 해보자. 다음 포스팅에 아주 잘 나와있어서 어렵지 않게 ftp를 설치할 수 있다. Windows Server 2012에 간단하게 FTP 설치하기 Windows Server 2012에 FTP를 간단하게 설치 및 설정하고 알드라이브로 접속하여 확인해보기 테스트 환경 : 윈도우즈7이 설치된 데스크톱 컴퓨터, 컴퓨터의 VMware에 설치한 Windows Server 2012 Standard 1. 윈도 klero.tistory.com 설치가 완료 되었다..