본문 바로가기
  • 개발 / 공부 / 일상
DevOps

(DevOps) Jenkins와 gitHub 연동하기

by JJeongHyun 2023. 8. 12.
반응형

https://developerjjh.tistory.com/197

 

(DevOps) Jenkins 설치 및 환경설정(Local)

https://developerjjh.tistory.com/196 (DevOps) CI/CD란 ? CI/CD CI/CD란 무엇인가 (Feat. DevOps 엔지니어) 안녕하세요. 개발자의 용어를 쉽고 명확하게 설명해드리는 개발자 김모씨입니다. CI/CD ?! 개발자로 밥먹고

developerjjh.tistory.com

 

우리는 이미 Local환경에서 Jenkins를 설치해서 과정을 조금은 익숙해졌다!!

 

한걸음 나아가서 AWS EC2 인스턴스를 생성하여 Jenkins를 실행하고

 

이후 gitHub에 webhook이라는 기능을 통해서 연동을 시켜보려고 한다!

 

AWS 연동

  • Jenkins를 접속할 인스턴스를 생성한다
    • Amazon Linux로 모든 설정값은 프리티어로 생성했다
  • 해당 인스턴스를 클릭해서 연결로 접속
    • putty라는 프로그램을 깔아서 접속할 수 있다

 

  • 로컬환경에서 했던 거처럼 JDK를 설치를 해줘야 한다
    • linux환경에서 JDK설치하는 것은.... 인내심이 필요한 거 같다..
    • 하다 보니 ㅋㅋㅋㅋ 캡처본을 남기지 못해서 검색을 통해 여러 블로그를 참고했던 거 같다 ㅠㅠ
    • 출처 블로그는 밑에 첨부!

 

Jenkins 설치

linux 환경을 기준으로 실행하는 점 양해부탁드려욧... ㅎㅎ

  • sudo yum install Jenkins
    • 설치 이후 8080PORT 번호로 되어 있는 설정을 바꾸고 싶다면 다음 명령어 8080을 변경하면 된다
      • sudo vi /etc/sysconfig/Jenkins
      • sudo vi /usr/lib/system/system/Jenkins.service

 

  • sudo systemctl start jenkins : Jenkins를 작동
    • sudo systemctl status jenkins : Jenkins 상태 확인

jenkins 작동 후 상태 창(status)

  • EC2 인스턴스에서 Jenkins 접속 확인
    • 퍼블릭 IP 혹은 DNS 주소값에 설정한 PORT번호를 붙여서 접속

 

  • Unlock Jenkins
    • sudo cat /var/lib/jenkins/secrets/initialAdminPassword로 확인
  • 이후 설정은 local설정과 동일

 

cf) EC2 인스턴내 Jenkins설치 참고 문헌

 https://velog.io/@thovy/PROJECT-%EB%B0%B0%ED%8F%AC%EC%9D%98-%EC%8B%9C%EC%9E%91-Jenkins-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0%EB%B6%80%ED%84%B0-EC2%EC%97%90-%EB%B9%8C%EB%93%9C%EA%B9%8C%EC%A7%80#ec2-%EC%97%90-%EC%A0%A0%ED%82%A8%EC%8A%A4-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

GitHub와 연동

  • gitHub 계정의 프로필을 클릭해서 settings로 접근
    • Developer settings 클릭
    • Personal access tokens > generate new token
      • name(원하는 Name), select scops
        • repo, adminorg, adminrepo hook

generate new token

발급완료하면 Token값을 얻을 수 있다
!! 이때 이후로 페이지 이동하면 다신 볼 수 없다!!

Token값 화면

  • 연동할 Jenkins 계정으로 로그인 후 접속
  • Jenkins 관리 > System
    • Github server
      • name : 쓰고자 하는 name
      • API URL : default값
      •  Credentials
        • Add 클릭 > Kind : Username with password
        • Scope : Global
        • Username :github 아이디
        • Password : personal token access 값 삽입
        • ID : 단순한 Jenkins내에 저장할 식별자(name)
      • Test Connection 클릭 후 Success 확인

 

  • Jenkins Dashboard
    • 새로운 item
      • 사용할 name 작성
      • Fresstyle project 혹은 Pipeline 등 원하는 plugin 설정
    • 생성한 item의 구성(설정)으로 접근
      • GitHub Project url
        • 연동할 repository 주소 삽입
      • Build Triggers
        • Github hook trigger for GITScm polling
      • Pipeline
        • Definition > Pipeline script from SCM
        • SCM > Git
          •  Repositories
            • URL : 연동할 Repository 주소
            • Credentials : 위에서 설정한 Github 계정 토큰 값
          • Branches to build : 배포할 브랜치 설정
            • */main

 

  • Github Webhook 설정
    • 연결할 repository > settings (repository 생성한 계정만 나와요!!)
    • Webhooks > Add webhook
      • payload URL
        • AWS DNS 주소값:8080(Jenkins PORT번호) + /github-webhook/
      • Content-type
        • Application/json

webhook 설정

 

후기)

막 어려울 거 같지는 않아서... 금방 한두 시간? 혹은 하루정도만 끝날 줄 알았는데

생각보다 여러움이 많았는데, 모든 과정을 못 담은 게 너무 아쉽다

며칠이 걸린 지는 모르겠지만 최대한 자세하게? 좀 알아보기 쉽게 작성하려고 노력... 했댜..

그래도 아마 ㅋㅋㅋㅋ 첨 보시는 분들은 나처럼 O_O 하면서 보실듯 하닼ㅋㅋ

적용하면서 봤던 모든 출처사이트들 첨부할게요!! 모두 감사했습니닷 (꾸벅)

 

참고 출처)

깃허브 푸시되면 젠킨스로 빌드 후 AWS EC2에 배포하기

: https://junhyunny.github.io/information/jenkins/github/jenkins-github-webhook/

Github WebHooks 연동하여 Jenkins 빌드 자동화

: https://1minute-before6pm.tistory.com/52#google_vignette

AWS EC2Jenkins 서버 구축

:https://velog.io/@hmyanghm/AWS-EC2%EC%97%90-Jenkins-%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95

jenkins 설치 실행 service failed 에러를 잡아보자

: https://nowod.tistory.com/9

Jenkins Port 번호 변경 두 가지 방법

: https://jeeu147.tistory.com/109

AWS EC2Jenkins 설치하기

: https://green-joo.tistory.com/12#%25EA%25B-%25B-%25EB%25B-%25B-%25--%25ED%25-F%25AC%25ED%25-A%25B-%25--%25EB%25B-%25--%25EA%25B-%25BD-%25EC%25--%25A-%25ED%25--%25-D-

Linux EC2에서 Jenkins 설치하기 (java 11 버전버전 설치)

: https://narup.tistory.com/259

Jenkins 설치하기부터 EC2에 빌드까지

:https://velog.io/@thovy/PROJECT-%EB%B0%B0%ED%8F%AC%EC%9D%98-%EC%8B%9C%EC%9E%91-Jenkins-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0%EB%B6%80%ED%84%B0-EC2%EC%97%90-%EB%B9%8C%EB%93%9C%EA%B9%8C%EC%A7%80#ec2-%EC%97%90-%EC%A0%A0%ED%82%A8%EC%8A%A4-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

Jenkin Pipeline 사용하기

: https://velog.io/@revelation/Jenkins-pipeline-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EA%B8%B0