ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Travis] Notification Slack 연동
    CI-CD 2022. 3. 25. 16:48
    반응형

    이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다.

    틀리거나 잘못된 정보가 있을 수 있습니다.

    댓글로 알려주시면 수정하도록 하겠습니다.


    1. Travis Notification Slack 연동

    Travis를 사용중이시라면 아마 기본적으로 Email을 연동하여 사용중 이실거라 생각합니다.

     

    Travis의 경우 Email이 아닌 Slack을 이용하여 Notification을 전달 받을 수 있습니다. 이번 포스팅에서는 Travis Notification을 Slack과 연동하는 방법에 대해 알려드리고자 합니다.

     

    이미 Slack을 사용중이시면 Slack에 로그인 후 Slack App Directory에 접속합니다. 만약 Slack을 처음 사용하시는 분은 Slack에 회원가입후 Slack App Directory에 접속 합니다.

     

    App Directory에 접속 후 검색란에 Travis를 검색하여 Travis APP에 접속 합니다.

     

    접속 후 좌측의 Slack에 추가 버튼을 클릭하여 Slack에 Travis App을 추가 합니다.

     

    특정 채널을 선택하는 화면이 출력되면 연동을 진행하고자 하는 채널을 선택하여 Travis CI 통합 앱 추가 버튼을 클릭 합니다.

     

    설명 지침과 함깨 Token을 할당 받습니다. (Token은 <슬랙도메인>:<travis token>형태로 할당)

     

    notifications:
      email:
        recipients:
          - email@address.com
      slack: <슬랙도메인>:<travis token>

    이제 연동을 진행하고자 하는 프로젝트의 .travis.yml 파일의 notifications 속성에 slack을 추가하면 됩니다.

     

    여기까지가 Travis와 Slack을 연동하는 과정이였습니다. 그러나 이 과정보다 중요한 보안관련 과정이 하나 남아있습니다.

     

    .travis.yml파일의 경우 Github와 같은 저장소에 Commit을 하거나 하여 공개가 될 수 있습니다. 이럴 경우 Slack의 Token이 노출되어 보안에 문제가 발생할 수 있습니다. 그래서 <슬랙도메인>:<travis token>값을 암호화 하여야 합니다.

     

    Token암호화

    token 암호화를 위해서는 travis-cli를 사용할 것입니다.

     

    먼저 Window경우 RubyInstaller를 설치하여 Ruby를 사용할 수 있도록 합니다.

    (최신버전을 다운받아도 되며 다른 버전을 다운받으셔도 상관 없습니다.)

     

    다운로드 받은 설치파일을 실행하여 설치를 진행합니다.

     

    ruby -v

    설치가 완료되면 cmd를 실행하여 ruby -v 명령어를 입력하여 설치된 루비 버전이 정상 출력되는지 확인합니다.

     

    gem install travis

    이제 cmd에 gem install travis 명령어를 입력하여 travis를 설치 합니다.

     

    설치가 완료되었다면 이제 travis를 이용하여 login을 진행합니다. 기존 Login 방식으로 로그인시 ID, Password를 통한 Login이 Deprecated 되었다는 경고가 출력 됩니다.

    ※ 로그인의 경우 2020-07-30일 이전에는 GitHub의 ID와 Password로 로그인이 가능 하였지만 2020-07-30일 이후로는 GitHub와 연동되는 모든 Access가 Token으로 변경되었습니다.

     

    로그인을 위해 GitHub로 부터 Token을 발급 받고 해당 Token을 이용하여 로그인을 진행합니다.

     

    travis login --com --github-token <발급받은Token값>

    cmd에 travis login --com --github-token <발급받은 Token값>명령을 입력하여 login을 수행합니다.

    로그인이 성공적으로 되면 Successfully logged in as '사용자명'이 출력됩니다.

     

    cd <이동하고자하는 Directory명>

    이제 암호화를 위하여 cmd의 현재 폴더 위치를 Slack과 연동하고자 하는 Project위치로 이동합니다.

     

    travis encrypt "<슬랙도메인>:<travis token>" --add notifications.slack --com

    이동완료 후 설명 지침에 있는 자격증명 암호화 부분을 복사하여 붙여넣은 뒤 마지막에 --com을 붙여 실행합니다.

     

    실행을 하면 .travis.yml파일에 slack의 secure 값이 추가된 yml의 모습이 출력됩니다.

     

    그리고 변경여부를 입력합니다. 이때 y를 입력하면 .travis.yml파일에 slack과 관련된 값들이 자동적으로 적용됩니다.

     

    Slack으로 돌아가 Notification이 정상적으로 출력된 것을 확인할 수 있습니다.

     

     

     

    반응형

    'CI-CD' 카테고리의 다른 글

    [Jenkins] Log4j 취약점 확인  (0) 2021.12.22
    [CI-CD] Jenkins GitHub Repository 연동하기  (0) 2021.11.24
    [CI-CD] Jenkins 버전 업데이트  (0) 2021.09.05

    댓글

Designed by Tistory.