[CI/CD] Jenkins 설정 + git 파이프라인

최동혁·2023년 4월 28일
0

CI/CD

목록 보기
1/4
post-thumbnail

Jenkins

  • 젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴
  • CI(Continuous Integration) 툴 이라고 표현
  • 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해
  • 각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다.

설치

  1. 자바 설치
  • dnf install -y java-11-openjdk-devel
  1. 레포지토리 추가
  1. 젠킨스 설치
  • dnf install jenkins --nogpgcheck
  1. 젠킨스 포트 변경
  • vi /usr/lib/systemd/system/jenkins.service
    • Environment="JENKINS_PORT=8080" 를
    • Environment="JENKINS_PORT=9090" 으로 변경
  1. 리로딩
  • systemctl daemon-reload
  • systemctl restart jenkins

접속

  • 해당 가상환경의 ip:9090으로 접속해보자
  • 그러면 어떤 파일에 비밀번호 적혀있으니깐 그거 복사해서 로그인하라고 뜬다.
  • cat 해당경로 를 입력해서 나오는 비밀번호를 복사해 로그인하자.
  • 그리고 plugin을 다운받으라는데, 왼쪽은 자주쓰는 플러그인들 자동 추천해서 설치해주는것이고, 오른쪽은 직접 골라서 설치하는것이다.
  • 어차피 언제든 필요한 plugin 설치 가능하기 때문에 왼쪽 클릭

  • 이런식으로 설치를 해준다.

  • 이런식으로 관리자 계정 생성
  • 나머지는 그냥 default로 쭉 넘기면

  • jenkins 대시보드가 뜬다!

  • 코드를 개발해서 깃과 같은 형상유지툴에 업로드를 한다.

  • 그 코드를 자동으로 가져가서 이미지를 생성하고, 컨테이너 상에 디플로이먼트가 생성되었으면 좋겠다?

  • 그러면 jenkins에 git, docker, k8s 등등 필요한 것들이 다 설치되어 있어야 한다.

  • 그렇기 때문에 사양이 좋아야한다.

깃 설정

  • jenkins 설치되어 있는 가상환경에 git 설치
  • yum install git

깃허브 토큰 생성

  • 위의 두개 체크하고 토큰 생성 후, 따로 로컬컴퓨터에 저장

jenkins api key 생성

  • 젠킨스 대시보드 -> 오른쪽 상단 사용자 프로필 -> 설정 -> API Token에서 Add new Token클릭 후 아무 이름이나 입력 -> 토큰 복사 -> save

jenkins에 github-token 등록

  • 젠킨스 대시보드 -> Jenkins 관리 -> 시스템 설정에 들어가면 위의 그림처럼 Github가 있다.
  • 만약 없다면 plugin 설치 안된거니깐 알아서 설치

  • Add GitHub Servers 클릭 후 Github Server -> Name 적당히, Add 클릭 -> Jenkins
    -> Kind: Secret text, Secret: github-token 넣기, ID는 적당히 입력 후 Add 버튼 클릭 -> Credentials에서 추가한 것 선택

  • test connection을 해서 위에처럼 자신의 깃허브 아이디가 뜨면 성공 -> 저장

github 웹훅 설정

  • 레포지토리 생성 -> 해당 레포지토리의 settings -> webhooks 설정

  • add webhook 클릭

  • http://자신의 공인 ip:포트포워딩한 포트번호/github-webhook/

  • secret 부분에 jenkins api key 입력

    • 자신의 공유기 ip로 접속해서 포트포워딩을 해줘야함.
    • 왜냐면 github에서 내 jenkins 서버로 들어오려면 내 공인 ip를 거쳐서 사설 ip로 들어와야하기 때문에 포트포워딩을 걸어주는 것이다.
    • 그러면 일단 공인 ip에서 사설 ip로 포트포워딩을 해줬다.
    • 그 후, 가상환경 ip로 가게 다시 포트포워딩을 해줘야한다.
    • virtual network에 들어가서 고쳐주자.
    • 이렇게 해주면 공인 ip 에서 사설 ip로 들어와서 9090포트의 가상환경 ip로 바꾸어준다.

  • 이렇게 하면 30000번 공인 ip로 들어갔을때 jenkins 대시보드가 떠야한다.

파이프라인 생성

  • 대시보드 가장 왼쪽 위에 새로운 item 클릭

  • 이름은 아무거나(대시보드에 뜨는거임), freestyle 클릭

  • github project 클릭 후, 자신의 프로젝트가 있는 git 주소 입력

  • 그리고 자신의 레포에 들어가보면 code라는 초록색 버튼이 있는데, 여기서 나오는 주소 복사

  • 대시보드의 소스코드 관리에 Git 체크 후, 복사한 레포 url 붙여넣기

  • 바로 밑에 branch가 나와있는데, 요즘은 master가 아니라 default로 main으로 되어있다.
  • 자신의 branch가 따로 있다면 그걸 써주고, 그게 아니라면 main으로 바꿔주자.

  • 빌드 유발은 Github로 시작하는거 누르기

  • build step은 위의 그림처럼 Execute shell 클릭

  • 그러면 이런 창이 뜨는데, 다른 사용자가 git push를 해서 내 레포에 코드가 업데이트 되면, 해당 코드를 클론 받아서 적용하고, 그 후에 쉘창에 입력될 명령어들을 쓰는 것이다.
  • 우리는 test를 하는 것이기 때문에 echo test를 써서, 프로젝트를 잘 받아오고 test라는 문구가 뜨는지 볼것이다.
  • 그 후, 저장하면?

  • 대시보드로 나와서 지금 빌드를 클릭한다.

  • 그렇다면 왼쪽 밑에 완료가 되었다고 뜬다.
  • 클릭해서 들어가보자.

  • 잘 작동했다고 나온다.

  • 여기서 우리는 아까 echo test가 잘 뜨는지도 확인해야 한다.

  • 왼쪽 탭에 Console Output을 클릭하자

  • 동작하는 모든 로그가 나온다.
  • 깃의 프로젝트를 잘 클론해오고, 그 다음 마지막에 test를 출력해준다.
profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글