Jenkins

heyhey·2023년 3월 22일
0

infra

목록 보기
3/3

Jenkins

CI 툴 중에 하나입니다.
원래 깔끔한 ui의 travis ci 를 사용하려고 알아봤으나 일정 기간 뒤 유료 정책이기 때문에 무료인 jenkins를 이용하려고 합니다.

  • 무료 오픈소스 자동화 서버
  • 빌드 배포 자동화를 지원하는 플러그인 제공
    • 빌드 : 코드를 실행할 수 있는 상태로 만들기
    • 배포 : 사용자 접근이 가능하게 만들기

기능

  • 빌드 자동화
  • 테스트 자동화
  • 코드 표준 준수 여부
  • 빌드 파이프라인 구성
  • 인증 권한
  • 자동화된 배포 관리

설치


  1. java 설치 확인

  2. repository key 및 repository 추가

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

$ echo deb https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list

  1. apt-get 업데이트

$ sudo apt-get update

  1. Jenkins 설치

$ sudo apt-get install jenkins

  1. Jenkins 실행

8080 포트 쓰니깐 -> docker stop 프로젝트 을 통해 8080 포트 사용하는 것을 정지

$ sudo systemctl start jenkins

  1. Jenkins 로그인

http:{ec2 public IP}:8080 으로 접근하게 되면 비밀번호를 입력하라고 합니다.
비밀번호는 이 폴더안에 저장되어 있습니다.

$ vi /var/lib/jenkins/secrets/initialAdminPassword
나오는 비밀번호로 접근한다.

  1. Jenkins 설치

Install suggetsed plugins 버튼으로 생성을 한다.
알아서 플러그인이 설치가 되고 준비가 됩니다.

  1. admin 계정 저장

admin - qw12 로 일단 생성해두고..

하면~~ 젠킨스가 실행되어서 설정이 가능합니다

하지만
8080 포트는 서버용으로 사용하는 포트이기 떄문에
8080을 기본 포트로 사용하는 젠킨스의 포트를 변경해주도록 합니다

포트 변경


  1. Jenkins 서비스에서 포트 변경을 해줍니다

$ sudo vi /usr/lib/systemd/system/jenkins.service
를 통해 파일을 열어주고
중간 쯤에 위치하는 Environment:"JENKINS_PORT=8080"
를 원하는 포트로 바꿔줍니다.

저는 20001을 사용하도록 하겠습니다.

  1. Jenkins 재시작

restart 로 하니깐 에러가 나서 껐다 켜는 방법으로 했습니다.

$ sudo systemctl stop jenkins
$ sudo systemctl start jenkins

  1. jenkins 관리 > 시스템 설정 > Jenkins URL

http://{}:20001 로 변경해줍니다.

wow ~ 20001 번 포트로 사용 가능합니다

/etc/default/jenkins 에서도 HTTP_PORT 를 바꿔줍니다.

Git 연동하기


이젠 Git이랑 연동해보겠습니다.

  1. 새로운 Item > Freestyle project 생성

  2. 스소코드 관리 > Git URL

  3. 지금 빌드 버튼 을 통해 Git 연동 확인을 합니다.

성공 이 뜨면 연동이 되고 있다는 것입니다.

Git webhook 설정


github에 어떤 브랜치에 push가 일어나면 자동으로 빌드가 되도록 설정해보겠습니다.

  1. 깃헙 > 프로필 > 세팅 > developer settins > personal access tokens > tokens

에서 Generate new token 을 통해 토큰을 받습니다.

  1. 토큰 생성
  • 토큰 노트 설정 (변경 자유)

  • select scopes

    • Repo 전체 선택
  • admin:repo_hook

    • 전체 선택
  1. 토큰 발급 후 복사를 해줍니다.

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

  1. Jenkins로 돌아와 > Jenkins 관리 > 시스템 설정 > Github server
    에서 추가를 해줍니다.
  • name : 설정 자유

  • api URL : 그대로

  • credentials add 를 선택

  • Kind : secret text

  • secret : 아까 복사한 토큰을 붙여씁니다.

  • id : git-id

  • description : 자유

테스트 커넥션으로 확인해봅니다 :
Credentials verified for user bbnerino, rate limit: 4997

  1. Git Repository 로 돌아옵니다
    settings > webhooks > add webhook
  • payload URL : {jenkins 주소}/github-webhook/
  • content type : application/json
  • Just the push event.
  • active
  1. Jenkins로 돌아와 > 구성 > 빌드 유발
  • GitHub hook trigger for GITScm polling 체크

끝이 났습니다
Git에 push를 하면 Jenkins가 되는것을 확인해봅니다.

생각보단 간단한 내용이었습니다.
파이프 라인도 나중에 연결해보겠습니다~

profile
주경야독

0개의 댓글