[ 2022.11.24 TIL-AWS Jenkins 설치 및 세팅 ]

Coosla·2022년 11월 24일
0

TIL

목록 보기
20/29
post-thumbnail

Jenkins

✏️ Jenkins란?

  • Jenkins란?
    • 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴
    • 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업하느 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능
    • 버전관리시스템과 연동하여 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동되도록 설정 가능
  • Jenkins 장점
    • 프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출
    • 자동화 테스트 수행
    • 정적 코드 분석에 의한 코딩 규약 준수여부 체크
    • 프로파일링 툴을 이용한 소스 변경에 따른 성능 변화 감시
    • 결합 테스트 환경에 대한 배포작업
  • Jenkins 단점
    • 프로젝트 별 보안 및 권한 설정 등이 불편
    • Issue tracking과 연계가 불편함

✏️ EC2에 Jenkins 컨테이너 설치하기

  • EC2/VPC 생성 및 세팅

  • EC2 추가 설정

    • EC2 인스턴스 > 보안 > 보안 그룹 > 인바운드 규칙 > 인바운드 규칙 편집으로 이동
    • 규칙 추가
  • 도커 설치

    • sudo yum update -y
      • 기존에 설치되어있는 라이브러리 업데이트 명령어
    • sudo amazon-linux-extras install docker -y
      • 도커 설치 명령어
    • sudo service docker start
      • 설치된 도커 서비스 시작 명령어
    • sudo usermod -a -G docker ec2-user
      • 유저 계정 정보 수정
    • sudo setfacl -m user:ec2-user:rw /var/run/docker.sock
      • 파일/디렉토리에 설정된 접근 권한 리스트 설정
  • 도커를 통해 Jenkins 설치

    • Jenkins 설치

      docker run  \
       -d \
      --name jenkins \
      -p 8080:8080 \
      -p 50000:50000 \
      -e TZ=Asia/Seoul \
      -v /home/ec2-user/data/jenkins/jenkins_home:/var/jenkins_home  \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v $(which docker):/usr/bin/docker  \
      jenkins/jenkins:lts-jdk11
      • docker ps -a를 통해 올라간 컨테이너를 조회
      • docker logs jenkins
        • Jenkins 초기 비밀번호는 해당 명령어에서 확인가능
        • 권한 오류관련
        • sudo chown 1000:1000 -R 해당 폴더명령어로 권한을 설정
  • Jenkins 접속

    • 기본 세팅

      • docker logs jenkins를 통해 확인할 수 있는 초기 비밀번호로 접속하여 기본 세팅 및 어드민 계정 생성
    • Jenkins 작업 생성하기

      1. 깃허브 토큰 발행하기

        • Setting > Developer settings로 접속
        • Persional access tokens > Tokens(classic) 선택 후 Generate new token 클릭
        • Select scopes 부분
          • repo, admin:org, admin:repo_hook 선택 후 생성
        • Jenkins 페이지에서 Jenkins 관리 > 시스템 설정에서 GitHub 설정
          • Add GitHub Server 버튼 클릭하여 name과 Credentials 설정
          • Credentials 생성
            • Kind : Secret text 선택
            • Secret : 깃허브에서 발행한 토큰값
            • ID : Credentials 이름 설정
      2. 접속 화면에 Create a job 클릭

      3. Jenkins job 이름과 생성방법 설정

        • Pipeline을 통해 깃허브와 연결할 예정
      4. 생성한 Jenkins job 설정

        • GitHub project -> 갓허브 레파지토리 URL입력
        • Build Triggers -> GitHub hook trigger for GITScm polling 체크
      5. Pipeline 작성

        • 깃허브에서 레파지토리 가져오는 명령
          pipeline {
          	agent any
          	stages {
          		stage('Clone') {
          			steps {
          		      git branch: '브런치', credentialsId: '생성한 Credential', url: '레파지토리 경로'
          			}
          		} 
          	}
          }
      6. 빌드해보기

        • 지금 빌드를 통해 파이프라인 스크립트가 정상적으로 작동되는지 확인 가능
        • 위 메뉴 하단에 있는 Build History에서 해당 빌드에 대한 세부 사항을 알수있음 (Console Output 메뉴 등)

참고

profile
프로그래밍 언어 공부 정리

0개의 댓글