오랫동안 블로그(지식습득)을 소흘히 한것을 반성합니다.

이 글은 jenkins plugin을 통해 빌드결과로 메일을 발송하려고 하였으나 뜻대로 되지 않았던 분들께 바칩니다. 

jenkins 1.597 버전에서 테스트한 내용임을 알려드립니다.


jenkins 플러그인은 친절하지 않습니다. (안 그런 것도 있지만)

실패해도 로그를 보고 원인을 찾기가 쉽지 않습니다. 


1. Email-ext plugin을 설치 합니다. 

jenkins관리 > 플러그인관리 > 설치가능탭 > mail-ext plugin 설치. 


2. 플러그인 설정.

jenkins관리 > 환경설정 >  Extended E-mail Notification

강조한 부분은 모두 필수 입력이라고 생각하면 됩니다. 6번 빼고

1. SMTP server 

- smtp server ip 를 넣습니다.

   기본 25 port를 사용하는 것 같으며 인증이 필요하거나 ssl을 사용할 경우 고급을 눌러 설정을 할수 있습니다. 

2. System Admin Email Address

- 메일이 발송될때 보낸사람(시스템)의 메일주소, 없으면 메일이 발송되지 않으므로 주의.

3. jenkins URL

- 메일 발송시 빌드 url을 보낼때 사용할 jenkins 접속 url 127.0.0.1로 되어 있으면 다른곳에서 접속 할수 있도록 수정

4. Default Recipients 

- 기본 받는사람 설정. 이 설정이 없고 job에 플러그인 설정에서 따로 받는사람이 설정되지 않으면 메일 발송 실패.

5.Default Subject, Default Contents

- 이 설정은 JENKINS_HOME 디렉토리 아래 hudson.plugins.emailext.ExtendedEmailPublisher.xml 에 있는 내용임.

   메일 제목과 내용을 jenkins에서 제공한 템플릿을 통해 만들 수 있다.

6. Enable Debug Mode

- 체크하면 뭔가 더 자세한 정보를 주겠죠?


3. job 설정 

jenkins job 설정 > 환경설정 

1. 빌드후 조치 추가 > Editable Email Notification 선택

1. Project Recipient List

- $DEFAULT_RECIPIENTS 는 환경설정의 값을 가져옴. 알림 메일을 받는사람들 설정

2. Project Reply-To List

- 답장받을 주소 (리스트 , 로 구분 )

3. Default Subject

4. Default Contents

- Default 값은 환경설정에서 설정된 값을 사용한다, job에 맞도록 메세지를 설정한다. 

5. Attach Build Log

- 체크시 발송되는 메일에 빌드 log 를 첨부해 주는 기능 

6. Trigger

- 빌드 상태에 따라 설정을 할수 있는 기능 : 꼭 선택해야 한다.

- 여러가지 상태가 있는데 알림 받고 싶은 경우에 선택 한다. (자세한 설명은 생략합니다.ㅠ)


4. JOB을 빌드하여 설정된 트리거에 메일이 발송되는지 확인!


*SMTP 서버로 메일이 발송되지 않는다면..

메일서버확인, 방화벽 확인. dns 확인, relay 설정 확인을 해볼 필요가 있습니다~

SMTP의 장애 해결 방법 참조


* 기본으로 있는 mailer plugin은 이상하게 테스트가 안되는 것을 확인했는데 원인은 잘 모르겠습니다.

'JENKINS' 카테고리의 다른 글

windows node(slave) 로그 한글깨짐.  (0) 2014.01.07
Posted by 마법수정화살
,

windows node를 추가하고 빌드 테스트를 하는데 

console 로그에서 한글이 깨지는게 몹시 거슬렸다. 


그래서 연말에 어수선한 틈을 타서 삽질시작.

넘어오는 데이터의 인코딩을 의심하고 

노드 config > java Web start > 고급 설정에 JVM 옵션이 있어서 file.encoding을 넣어주고

windows에서 다시 받아서 실행 하였다. 


visual vm으로 보니 system properties 에 설정이 안된것을 확인. 

검색 해보고 jnlp 파일을 열어서 수정하였다. 

결과는 실패.  

maven surefire , log4j 인코딩을 모두 확인해 보았다.

결과는 모두 실패. 

같이 분석해 주시던 부장님께서 log 파일의 한글 부분만 잘라서  od -x 로 어떤 인코딩인지 분석하는 중에 

힌트를 얻어서  maven 로그와 상단의 SVN, 히스토리 로그의 인코딩이 다른것을 확인. 


사용자 이름을 영어로 수정하니 vi 에서는 한글이 안깨지고 잘나오는 것을 확인.

다시 돌려 보았다

결과는 또 실패. 


데이터가 넘어오는 것은 UTF-8이나 windows에서는 ms949(cp949)로 넘어오는 것을 간단한 테스트를 통해 확인.

넘어오는 로그가 ms949가 되도록 vm에 해줬던 -Dfile.encoding 을 제거해서 시스템 인코딩을 사용하게 하였더니.

성공.


java web start의 문제인가 싶어서 ssh로 테스트 해보려고 했지만 귀차니즘..

다음 windows node를 연결할땐 ssh 로 해봐야겠다. (되는지 확실치 않으니 먼저 검색해보고..)

코슈케 아저씨에게 물어보고 싶은 마음이 가득해서 jenkins user groups과 jenkins 한국 groups에 문의할려고 

서성거리다가 하지 못 했다.


jenkins는 node의 시스템 케릭터셋을 가져와서 로그를 뿌려줄때 인코딩 해주는것 같은데

어떤 값을 가져와서 하는지는 못 찾았다. 


오히려 이렇게 되어있으면 인코딩 신경안써도 한글이 안깨지고 잘 나올것 같다. 



'JENKINS' 카테고리의 다른 글

[휴면해제기념]jenkins 빌드결과 메일알림.  (0) 2015.01.22
Posted by 마법수정화살
,