목차

    CI/CD를 위한 Git 설정

    • github plugin 설치 확인 (Dashboard->jenkins관리->Plugin Manager)

    • git config 설정

    Name : Default

    Path to Git executable : git

    • container에 접속해서 git 버전을 확인한다.

    해당 jenkins가 git을 사용가능한지 체크한다.

    CI/CD를 위한 Maven 설정

    • Plugin Maven Integration 설치

    • maven conf 설정
      • 만약 maven apply를 안해주면 mvn --version이 not found 뜸

    Exercise #2 Jenkins Job 2/4

    • maven을 설치하면 다음과 같이 Maven Project가 생긴다.

    • build Goals and options 설정
      • clean : 기존 빌드 삭제
      • compile : 빌드
      • package : package 한다.(war, jar)
        • spring boot 라면 
          • jar : local tomcat
          • war : remote tomcat

    • git 설정

    • 결과 값 확인 (target)
      • war 파일이 잘 떨어진 것을 확인

     

    CI/CD 작업을 위한 Tomcat 연동

    Jenkins 관리 -> 플러그인 관리 -> deploy -> deploy to container 설치

    목적은 떨어지는 war 파일을 톰캣 서버에 배포하는 것이다.

    • 설치중...

    • 기존 프로젝트의 내용을 가져올수 있음

    • Build

    • 빌드 후 조치
      • tomcat-user.xml 설정하기

    • 빌드 후 조치
      • username : deployer
      • pw : deployer
      • ID : deployer_user
      • Description : user to deploy on tomcat VM

    • 우리가 가진 war파일을 젠킨스를 통해 톰캣 서버에 배포하려고 하면 127.0.0.1:8088(Tomcat)으로 하면 안된다.
      • 젠킨스가 해당 주소를 모르기 때문이다.
      • 해결방법 : http://[windows IP]:8088(Tomcat)

    본인의 ip주소 알아내는 방법
    iterm에 ifconfig 명령어 사용

    'CICD > Jenkins + CI&CD' 카테고리의 다른 글

    DevOps와 CI/CD의 이해  (0) 2022.10.18
    Jenkinks를 이용한 CD/CD Pipeline 구축  (0) 2022.10.17

    목차

      WaterFall vs Agile vs DevOps

      WaterFall

      요구사항정의->분석/설계->구현->테스트->운영

      Agile

      WateFall을 보완하고자 생겨난 SW방법론

      Cloud Native - Containerzation

      Cloud Native - DevOps

      • Development + Operations
      • 지속적인 통합 및 배포 운동 -> CI, CD
      • 엔지니어가 프로그래밍하고, 빌드하고, 직접 시스템에 배포 및 서비스를 RUN
      • 사용자와 끊임 없이 Interaction하면서 서비스를 개선해 나가는 일련의 과정, 문화

      각 서비스별 주로 사용하는 Tool

      \

      Cloud Native - CI/CD

      • CI(Continuous Intergration)
      • CD(Continuous Delivery)
      • CD(Continuous Deployment)

      CI/CD Flow

      • ANSIBLE/TERAFORM 같은 경우는 로컬 환경에서 배포하고 운영에선 aws로 해본다.

      Deploy On Docker Using Jenkins

      sonarQube : jenkins에서 지원하는 정적 테스트 도구

      Amazon ECR : 도커 허브 같은 것

      Jenkins

      • 지속적인 통합과 배포 -> Work Flow를 제어
      • Continuous Integration Server
        • Continuous Developmnet, Build, Test, Deploy
      • 다양한 Plugin 연동
        • Bild Plugin : Maven, Ant, Gradle...
        • VCS Pluginb : git, svn
        • Languages Plugins : Java, Python, Node.js...

      Step1) Dock destTop 설치하기 https://www.jenkins.io/download/

      Step2) pull docker jenkins 

      jenkins/jenkins란?
      만들고자하는 계정Id/Jenkins Repository
      docker pull jenkins/jenkins?
      docker에서 jenkins계정의 jenkins Repo를 다운로드 받겠다. 라는 의미

      docker pull jenkins/jenkins

      step3) docker run -p 8080:8080 -p 50000:50000 --restrart=on-failure jenkins/jenkins:lts-jdk11

      • 8080:8080 : 컨테이너 밖 쪽에서 8080포트를 사용하면 컨테이너 내부로 8080접속이 되겠다.
      • 50000:50000 : 컨테이너 외부에서 50000번을 입력하면 컨테이너 내부에서 50000번을 응답하겠다는 의미 
      • estrart=on-failure  : restart이 on 이면 failure를 하겠다는 의미
      • jenkins:lts-jdk11 : 버전
      • -v 옵션 : 연결 작업 설정(마운트 작업)
      • -d 옵션 : 데몬으로 백그라운드에서 돌게 끔 하겠다는 의미, 터미널을 종료해도 도커는 떠 있음

      Step4) docker를 띄었다면 localhost:8080 접속하기

      • 비밀번호는 docker logs 에서 확인하기

      • plug in 설치 - 모든 플러그인 설치

      • Create First Admin User

      • jenkins 실행 완료 (localhost:8080)

      Step5) Jenkins Item 생성

      • FreeStyle Project로 생성

      • Build 설정하기

      Build Steps -> execute shell

      • Shell 입력하기

      우리의 jenkins는 Linux위에 docker에서 동작하고 있기 때문에 Linux의 shell명령어를 이용하여 build 설정을 할 수 있다.

       

      도커 터미널 커멘드

      • docker ps

      도커 돌아가고 있는지 확인

      • docker logs [컨테이너ID] - ad8afa98d44a4c478feeb9807144433c

      도커의 정보확인 (비밀번호 확인)

      • docker exec -it 9fbe23d2df0e bash

      터미널에서 도커 내부 젠킨스로 들어가기

       

        강의 수강완료
      1  DevOps와 CI/CD의 이해 2022.10.26
      2 Jenkins를 이용한 CI/CD 자동화 도구 사용  

       

      'CICD > Jenkins + CI&CD' 카테고리의 다른 글

      Jenkins를 이용한 CI/CD 자동화 도구 사용  (0) 2022.10.26
      DevOps와 CI/CD의 이해  (0) 2022.10.18

      + Recent posts