티스토리 뷰

Jenkins의 다양한 기능중 이번에는 Slack과 연동해서 배포 실패 시 또는 배치 수행중 문제가 생겼을 경우 알림을 보내주는 기능에 대해 알아보겠다. 내가 직접 Jenkins에서 빌드 버튼을 눌러서 실패를 하는 경우에는 바로 인지가 가능하고 조치를 하겠지만 스케쥴링 되어있는 Job을 수행중에 문제가 생긴 경우에는 이런 알림 기능이 필요하다. 가장 보편적으로 알려진 Jenkins의 알림은 Email이 있고 요즘에는 Slack을 통한 알림도 많이 사용하는 추세다.  

Jenkins와 Slack을 연동하려면 물론 두곳 모두에서 설정이 필요하며 설정이 어렵지는 않다. 하나씩 살펴보자. 


◈ Slack 에서의 설정

일단 Slack에서는 어떤 설정이 필요한지 알아보자. 

 

▶ 채널 생성

Slack 앱 연결

Jenkins Job 수행결과를 전달받을 채널을 하나 생성한다. 기존의 채널에서 진행해도 무관하다. 필자는 oing-father 라는 채널을 생성했다. 그럼 '앱 연결' (영문은 Add an app) 을 하여 연동을 위한 Jenkins 플러그인을 설치할 준비를 한다. 

 

▶ Jenkins CI 앱 설치 및 설정

Jenkins CI 앱 설치 및 설정

'앱 연결'을 누르면 아래와 같이 사용할 수 있는 앱들이 나온다. 그중 jenkins를 검색한다. 익숙한 Jenkins 아저씨 아이콘이 나오고 우측의 설치를 눌러준다. 

 

Jenkins CI 앱 설치 및 설정

알림을 받고 싶은 채널에서 앱 연결을 하여 여기까지 왔는데 여기에서 다시 알림을 받고 싶은 채널을 선택할 수 있다. 

oing-father 라는 채널에 알림을 받기로 하고 Jenkins CI 통합 앱 추가를 눌러준다. 

 

Jenkins CI 앱 설치 및 설정

누르면 페이지 가득 이런 저런 정보가 나온다. Jenkins와 연동하는 방법에 대해서도 쭉 기술이 되어 있다. 여기도 잘 나와있지만 필자가 더 자세하게 헤메지 않게 기술을 할 계획이다. 여기에서 기억해야 할 것은 3단계라고 나온 부분에 있는 팀 하위 도메인통합 토큰 자격증명 ID 이다. 이것들은 나중에 Jenkins 설정에 들어가야 할 값들이기 때문에 잘 메모해 놓는다. 

 

 

Jenkins CI 앱 설치 및 설정

Jenkins에 어떻게 연결하는지 설명이 끝나면 그 아래에는 통합 설정을 할 수 있는 부분이 있다. '이름 사용자 지정' 이라는 항목이 있는데 이것은 Slack에서 사용될 Jenkins 알림의 대화명이라고 보면 된다. 위와 같이 jenkins라고 지정해 놓으면 "jenkins : 젠킨스가 빌드에 실패했습니다. " 이런식으로 채팅방에 알려준다. 나중에도 변경 가능하므로 적당한 걸로 정하고 넘어가면 된다. 설정 저장을 꼭 누르고 설정을 마친다. 

 

Slack에서의 설정은 모두 끝이 났다. 


◈ Jenkins 에서의 설정

Slack에서 설정을 했고 연동을 하기 위해 필요한 값은 총 3가지이다. 연결할 채널 이름 (oing-father), 팀 하위 도메인 (teamoinghq), 그리고 토큰값

 

▶ Slack Plugin 설치 

Slack plugin 설치

Jenkins에서 가장 먼저 해야할일은 Slack 플러그인을 설치하는것이다. Jenkins 관리 > Plugin Manager 로 들어가서 slack을 검색해보면 Slack Notification 이라는 항목이 보일것이다. 이것을 설치해주면 된다. 

 

▶ Jenkins Slack 설정

Jenkins Slack 설정

Jenkins 관리 > 시스템 설정 에 들어가서 Slack이라고 화면검색을 해보면 위와 같이 Slack을 설정할 수 있는 부분이 나온다. 여기에 아까 연동을 위해 필요한 3가지 값을 설정해 놓으면 된다. 나머지는 입력 안해도 된다. 

 

  • Workspace                            = 팀 하위 도메인
  • Credential                             = 토큰
  • Default channel / member id   = 채널명

이 정보들만 넣어주고 Test Connection 을 누르면 연동결과를 알 수 있다. 

 

Jenkins Slack 설정

위에서 입력해야 하는 항목 중 Credential은 Add 버튼을 눌러서 추가를 해줄 수 있다. Add 버튼을 누르면 위와 같은 화면이 나오고 Kind를 Secret text로 바꿔주고 Secret 항목에 Slack에서 받은 토큰값을 넣어주고 Add를 하면 된다. 

 

모든 설정은 끝났다. 

 

▶ Jenkins Slack 연동

Jenkins Slack 연동테스트

설정을 마치고 이제 실전이다. 빌드 결과에 따라 Slack으로 알림을 받기 원한는 Job을 선택한다. 그리고 Job 구성을 눌러서 수정을 해준다. 맨 마지막 부분에 '빌드 후 조치 추가' 가 있다. 이걸 눌러보면 Slack Notifications 가 있고 이것을 선택해준다. 필자는 모든 사항에 대해 체크를 했지만 보통은 Notify Unstable, Notify Every Failure 등에 대해서 설정을 해놓고 사용을 많이 한다. 이렇게 설정을 하고 Job을 실행시켜보자!

 

Jenkins Slack 연동테스트

실행을 시키면 우측 하단에 이런 알림이 뜬다. 그리고 자세히 보면 브라우저 탭 중 Slack이 떠있는 부분에도 * 표시가 새로 생기면서 새로운 메세지가 왔다는것을 알려준다. 

 

Jenkins Slack 연동테스트

알림을 보고 Slack으로 들어가서 확인을 해보면 위와 같이 jenkins로부터 메세지가 온 것을 확인할 수 있다. 최근에 온 메세지는 빨간줄 아래의 부분으로 표시가 된다. 우측의 Open을 눌러보면 해당 Jenkins Job으로 바로 이동을 할 수 있다.

 

사진을 많이 넣어서 글을 쓰느라 과정이 길고 복잡해 보이지만 실제로 해본다면 5분도 안걸린다. 간단하게 연동할 수 있다. 

 

끝!

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30