Jenkins 설치

SeonKyum·2021년 12월 22일
0

백엔드 개념

목록 보기
3/23

ec2 프리티어 사용 시 swap file 생서하여 용량 늘리는 방법 : https://okky.kr/article/884329

$sudo apt-get install jenkins

1. Jenkins 설치를 위해 Repository key 추가

$wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
OK

2. 서버의 sources.list에 Jenkins 패키지 저장소 추가

$sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \
    /etc/apt/sources.list.d/jenkins.list'
sudo tee /etc/apt/sources.list.d/jenkins.list
deb http://pkg.jenkins.io/debian-stable binary/

3. 패키지 인덱스 정보 업데이트

$sudo apt-get update 

4. Jenkins 패키지 설치

$sudo apt-get install jenkins

5. Java JDK 8 설치

$sudo apt-get install openjdk-8-jdk

6. apt-get 재 업데이트 - 안해도 됨

$sudo apt-get update

7.Jenkins 포트 변경하기

  • 보통 8080 포트를 사용하기 때문에 jenkins 포트는 따로 사용하는게 좋다.
$sudo vi /etc/default/jenkins
  • HTTP_PORT=8080 부분을 9090 으로 바꿔준다.

8. Jenkins 실행하기

$sudo systemctl start jenkins

9. Jenkins 상태 확인

$sudo systemctl status jenkins

10.Jenkins 방화벽 설정

  • 기본적으로 OS는 보안을 위해 방화벽으로 주요포트 이외의 대부분의 포트에 다른 호스트들의 접근을 막아놓는다.
  • 9090포트 를 열어준다
  • 우분투 초기 설정은 모두 allowed 되있지만 추가해줌
$sudo ufw allow 9090

11. Jenkins 초기 비밀번호 확인

  • http://(hostIp or hostName):9090 에 초기 접속시 필요한 Administrator password 를 찾는다.
$sudo cat /var/lib/jenkins/secrets/initialAdminPassword

답장

834e374f274b45f882c7ddbeae535c2e

12. Jenkins 사이트로 이동 후 11번에서 확인한 비밀번호 입력

ec2 주소로 접속하면 아래와 같은 화면이 뜬다

13. Jenkins 플러그인 설치

14. Create First Admin User

  • 이창에서 계정명 암호는 앞으로 계속 jenkins에서 사용되니 주의해서 작성

15. 환경 변수 및 기본 세팅

  • 오른쪽 Jenkins 관리 → Global Tool Configuration 클릭
  1. jdk 경로

  • openJDK를 설치했을 경우 경로를 위와같이 설정
  1. gradle 설정

  • 7.2버전을 사용중임으로 위와같이 설정

젠킨스와 GitHub 연동

1. GitHub Integration 플러그인 설치

  • Jenkins 웹페이지에서 Jenkins 관리 → 플러그인 관리 → 설치 가능을 선택 후 GitHub Integration 설치

  • 체크후 Install without restart 클릭

2. Post build task 플러그인 설치

  • 1과 같은 방법으로 검색 후 설치
  • 이 플러그인으로 빌드시 task를 이용해 자동 배포가 가능하게 한다.

3. Jenkins Job 생성

  • New Item 클릭

  • 원하는 Project 명 입력 → Freestyle project 클릭

  • 구성을 클릭
  • GitHub Project 체크후 본인 깃주소
  • 소스 코드 관리에 Git 체크후 연동할 레포지토리 주소와 username 은 깃아이디 비밀번호는 git 비밀번호로 Credentials 설정

  • 브랜치 정보 입력 (빌드할 브랜치 git clone 주소 .git)
  • 나는 main 과 Develop 두개를 지정했다.

4.자동 빌드 & 배포 설정

  • 구성 → 빌드유발 에서 GitHub hook trigger for GITScm polling 체크
  • 구성 → Build 에서 Invoke Gradle script 클릭 → Invoke Gradle 체크 후 Gradle Version 에서 Global Tool Configuration 에서 설정한 gradle 설정
  • task 란에 clean build 라고 적기
    • clean 하고 build 하라는 명령어
  • 구성 → 빌드 후 조치 에서 Log text 에 원하는 메세지를 적은 후 (ex. BUILD SUCCESSFUL) Scrip란에
    sudo kill -9 `pgrep -f Joopging-0.0.1-SNAPSHOT.jar`
    nohup java -jar build/libs/Joopging-0.0.1-SNAPSHOT.jar &
    이렇게 적어주면 원래 돌아가던 빌드를 종료 시키고 새로운 빌드를 돌아가게 한다.
  • jenkins에게 sudo 명령어 권한을 주기위해
    $sudo vi /etc/sudoers
    에서 %sudo ALL=(ALL:ALL) ALL 밑에 jenkins ALL=(ALL) NOPASSWD: ALL 구문 추가
  • 여기까지 진행 후 Build Now를 눌러 체크 해 본다
    • Console Output

      (빌드를 한 후 post build task 순서를 실수해서 고침 )

5. Githup Webhook 세팅

  1. Jenkins 관리에서 Jenkins URL 확인


  1. GitHub 레포지토리 add webhook
  • 자신의 프로젝트 레포지토리 → Setting → Webhooks →add webhook

  • Payload URL 에서 Jenkins URL/github-webhook/ 을 입력해 준다.
  • Content type 은 application/json

  1. Jenkins Webhook 세팅
  • 프로젝트 페이지 → 구성에서 아까 빌드유발에 check 해둔 GitHub hook trigger for GITScm polling 에 체크를 해두었다면 그것으로 ok
  • git 에서 push 를 하면 제대로 빌드, 배포가 되는지 확인
  • 8080포트 쓰이고 있을때 sudo lsof -i:8080 로 그랩후 kill 하기
profile
차근차근,,

0개의 댓글