728x90
반응형

CI CD InfraStructure/Jenkins 11

[Jenkins] Slave Node에서 빌드 - Pipeline 적용 (Third)

jenkins-node1 Docker 서버 추가 및 실행 > docker run --privileged --name jenkins-node2 -itd -p 40022:22 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup --cgroupns=host edowon0623/docker:latest /usr/sbin/init > ssh root@localhost -p 40022 기동된 서버 ip Address 확인하기! ncurses git / JDK 설치 # yum install -y ncurses git # yum list java*jdk-devel # yum install -y java-11-openjdk-devel.x86_64 Master 서버에 Node2 ..

[Jenkins] Multi nodes 구성 (Master/Slave)

Jenkins 서버에 새로운 Worker노드를 추가해서 Master노드가 가지고있는 작업을 분할하는 환경을 구축한다. 지금까지 단일서버로 구성한 환경에서 사용해왔다 이것을 Jenkins Master라고 부른다. Jenkins Master에서 사용자 요청에 의해 빌드/배포 하는 작업을 자신에게 추가된 다른 Slave Node에 작업을 요청함으로써 업무에 대한 분담을 처리하는 구조이다. Slave는 Windows Linux Docker컨테이너 형태로 구성할 수 있다. Remote에서 실행될 수 있는 Jenkins의 Wokrer node Jenkins Master의 요청을 받아 처리 Master로 부터 전달된 Job 실행 jenkins-node1 Docker 서버 실행 docker run --privilege..

[Jenkins] Sonarqube 연동 및 Pipeline 사용

SonarQube Jenkins연동 1. Jenkins 관리에서 SonarQube 플러그인 추가 Jenkins관리 - Plugins - Available plugins - SonarQube Scanner 검색 후 Install without restart 2. SonarQube AccessToken Credential로 등록 Jenkins관리 - Security - Credentials - Stores scoped to Jenkins - (global) 도메인 항목 선택 - 우상단 Add Credentials 선택 Kind를 Secret text로 선택한다. Secret에 SonarQube에서 발급받은 토큰값과 지정할 임의의 ID를 입력한 후 생성한다. 추가 된 Credentials 확인 3. Jenki..

[Jenkins] Pipeline Syntax - Maven Build / 배포(Tomcat, Docker컨테이너)

Pipeline Syntax란? 현재 예제에서는 Jenkins Sever에서 Pipeline Script로 실행하고자 하는 외부의 스크립트를 가지고 와서 Script를 실행한다. 깃허브로 부터 코드를 가져온 뒤 리포지토리 안에 들어있는 Shell Script 파일을 실행하는게 목적이다. Shell Script를 실행하는데 필요한 깃을 가져오는 코드를 작성하는 문법을 자동으로 생성할 수 있게 하는 기능이다. 현재 사용중인 Jenkins는 Docker 형태로 기동되고 있다. Docker라는 것은 리눅스를 통해 젠킨스가 작동되고 있기 때문에 sh확장자인 Shell Script 파일을 실행한다. Docker를 사용하지 않고 직접 Jenkins를 구성하였다면 bat확장자의 배치파일로 실행한다. 1. Item - ..

[Jenkins] Pipeline Item 생성, Pipeline script 작성

1. Dashboard - 새로운 Item - 이름 지정 및 Pipeline선택 - OK 2. General 란에 설명을 작성한다. 3. 하단 Pipeline Definition에 Script내용을 추가한다. 4. 빌드버튼 클릭 빌드가 진행되면 각각의 Stage 단계가 항목이 시각화 되어 아래와 같이 진행률이 출력된다. 5. 155가 기제되어있는 연두색 네모상자에 마우스를 올리면 로그를 확인할 수 있는 툴팁이 열린다. 6. 콘솔을 확인해보면 각 Stage 단계별 내역을 확인할 수 있다. 7. Script에 post 항목 추가 post : 빌드가 성공적 혹은 실패가 되었을 때, 즉, 빌드가 완료되었을 때 어떠한 작업을 진행할 것인지 출력해주는 문장이다 . 지금 빌드를 하게되면 Stage View에 아래와 ..

[Jenkins] Delivery Pipeline 구축 및 시각화 플러그인 설정

Delivery Pileline 구축 이번 시간에는 아래 3개의 프로젝트로 Pipeline을 구축해본다. 1. First 프로젝트를 선택 - 구성 - 빌드 후 조치 2. 좌측의 빌드 후 조치 추가 버튼을 클릭한다. 3. 목록 3번째 Build other projects를 선택한다. 4. Projects to build 구성에서 설정하는 현재 프로젝트의 빌드가 성공적으로 수행한 뒤 빌드할 프로젝트인 Second 프로젝트를 입력한다. 5. Triger 옵션 지정 입력한 프로젝트를 언제 빌드할지 옵션을 선택한다. stable : 성공적으로 빌드가 끝났을 때 unstable : 성공적으로 빌드가 끝나지 않았을 때 fails : 빌드에 실패했을 때 현재의 프로젝트가 성공적으로 빌드가 끝났을 때 입력한 프로젝트를 ..

[Jenkins] Jenkins에서 SSH 세팅 및 Item (Project) 배포

Jenkins SSH세팅 1. jenkins관리의 Plugins 선택 2. Publish Over SSH 검색 - 체크 - Install wtihout restart 3. jenkins관리의 System 선택 4. 최 하단 Publish over SSH 선택후 SSH Servers추가 버튼 클릭 5. SSH Server 정보 입력 6. [고급] 패스워드 지정 7. [고급] 본인이 설정한 SSH 포트번호 지정 Jenkins SSH 배포 및 직접 실행 1. 구성 - 빌드 후 조치 이동 2. 빌드 후 조치 추가 버튼 클릭 후 Send build artifacts over SSH 선택 3. 이전에 Jenkins에 등록한 SSH Server를 선택해준다. 4. Transfers 데이터 입력 후 최종 저장 Tran..

[Jenkins] Poll SCM 설정 지속적인 파일 업데이트

Polling 작업을 주기적으로 해본다. 구성정보의 BuildTrigger 옵션을 추가해준다. 일정 시간이 되면 자동으로 Jenkins에 등록된 Git Repository로 부터 프로젝트를 가지고와서 변경내역을 확인하고 빌드한다. Cron job을 통해 진행된다. Build periodically : 코드 변경내역이 없어도 설정한 Cron tab에 의해 정해진 시간에 한번씩 빌드해준다. Poll SCM : 코드의 변경내역이 Jenkins에서 확인되면 빌드가 자동으로 진행된다. 다시말해 Commit 내역이 리포지토리에 반영되면 Jenkins에서 변경내역을 인지하고 빌드해준다. 이때, Cron tab에 의해 정해진 시간에 한번씩 변경내역을 확인하고 변경사항이 없으면 빌드하지않고 변경사항이 있으면 빌드해준다...

[Jenkins] Maven프로젝트 생성 및 Git코드 Build 후 Tomcat 배포

1. 새로운 Item 선택2. Maven Project 생성이름을 입력하고 하단에 Maven 플러그인이 설치되어 있으면 Maven project를 볼수있다. Maven Project를 선택한 뒤 OK버튼을 클릭한다. 3. Git 정보 입력Credential은 Git Repository가 Private일 경우 권한을 설정하는 옵션이다. public Repository이므로 계정에대한 권한없이 사용할 수 있다. 따라서 현재는 추가로 설정하지 않는다. 4. Build 설정하단의 Build로 이동하여 Goals 옵션을 지정해준다.Root POM에는 pom.xml이 입력되어있다. pom.xml파일을 기반으로 Maven빌드가 진행된다. 그 다음으로 어떤 항목들로 Build할지에 대한 지정을 Goals and opt..

[Jenkins] CI/CD에 필요한 Git, Maven, Tomcat 설정

GIT 설정 좌측 메뉴를 보면 Updates / Available plugins / Installed plugins 세가지를 확인할 수 있다. Updates : 업데이트된 플러그인 목록 Available plugins : 설치 가능한 플러그인 Installed plugins : 설치된 플러그인 우리가 필요로 하는 플러그인 항목은 GitHub plugin이다. Available plugins에서 Github plugin을 검색하면 검색이 되지 않는다. 이 말은 이미 설치되었다는 뜻으로 Installed plugins 항목을 가서 확인해보면 존재한다. 위와 같이 Installed plugins 항목에서 GitHub plugin을 검색하면 플러그인이 설치되어있는 것을 확인할 수 있다. 다시 Jenkins 관리..

[Jenkins] Item(Project) 생성 및 빌드

Jenkins에서 Project를 생성해보자. Jenkins에서는 Build, Complie, 배포의 최소 단위를 Item이라는 이름을 사용한다. 1. 새로운 Item 클릭 2. 아이템 이름을 설정하고 Freestyle Project 템플릿 선택 OK버튼 클릭 3. Build Steps 콤보상자에서 2번째 Execute Shell 항목 선택 지금 만든 첫번째 ITEM을 실행하게 되면 어떠한 Shell Script가 생성되고 실행하도록 설정한다. Jenkins 자체가 Dokcer에 설치가 되어있고, Docker는 기본적으로 Linux운영체제를 사용하고 있다. 따라서 Shell Script 실행 환경은 Linux의 Shell Script라고 볼수 있다. 4. 실행할 내용 - Echo 문장 입력 5. Item..