Jenkins 24

[Jenkins] Script Console - Groovy 스크립트 실행

개요2024.07.16-[Jenkins] RejectedAccessException - Scripts not permitted to use 해결의 에러는 Jenkins 파이프라인이 Groovy 스크립트로 동작한다는 점을 이용해, Groovy 테스트를 시도하다가 만나게 되었는데…… 찾아보니 Groovy 스크립트를 실행할 수 있는 콘솔도 제공을 하고 있었다.이번 글에서는 Script Console 기능을 사용해 Groovy 스크립트를 실행해 본다.  Script ConsoleJenkins는 Script Console을 이용해 Jenkins 컨트롤러나 에이전트에서 Groovy 스크립트를 실행할 수 있다.Jenkins에 웹 기반 Groovy shell을 추가하는 것으로, 사용자가 Script Console을 통..

Jenkins 2024.08.08

[Jenkins] RejectedAccessException - Scripts not permitted to use 해결

현상업무 중 Groovy 코드를 테스트하고 싶은 일이 생겼는데, Java Spring 기반 프로젝트라 단순 print 확인을 위한 프로젝트 세팅을 하기가 좀 번거로운 상황이다. 좀 간편하게 테스트할 방법을 생각해 보다가 Jenkins 파이프라인에서 Groovy 스크립트를 실행할 수 있는 것이 생각나 다음과 같은 코드로 시도해 보았는데……import org.springframework.http.HttpHeadersimport org.springframework.http.MediaTypeimport java.nio.charset.CharsetCONTENT_TYPE = "application/json;charset=utf-8"HttpHeaders headers_1 = new HttpHeaders()header..

Jenkins 2024.08.07

[Jenkins] Build 히스토리 삭제 - 3

개요Jenkins Job 별로 빌드 히스토리를 관리하는 것에 대해서는 2021.05.23-[Jenkins] Build 히스토리 삭제 - 1, 2021.12.01-[Jenkins] Build 히스토리 삭제 - 2 글에서 살펴본 적이 있었다. 그런데 최근 주변에서 Jenkins 빌드 히스토리로 인한 디스크 부족으로 대응하는 모습을 보면서 Job 별로 설정할 수 있는 Discard Old Builds에 대한 기본값을 설정해두면 좋을 것 같다는 생각을 하게 되었다. 관련해서 찾아보니 Jenkins 전체 대상으로 빌드 삭제 기능을 제공하는 플러그인 Build Discarder가 존재하는 것을 확인할 수 있었다. 이 글에서는 좀 더 효율적으로 Jenkins를 관리할 수 있도록 Build Discarder를 설정하는..

Jenkins 2024.05.24

[Jenkins] K8s - Found class io.fabric8.kubernetes.api.model.VolumeFluent$EmptyDirNested, but interface was expected

개요 사용하고 있는 AWS EKS의 Kubernetes 1.24 버전이 2024년 1월에 EOS 될 예정이라 버전 업그레이드가 필요한 상황이다. 따라서 업그레이드 작업 전 테스트 클러스터에서 서비스가 정상적으로 동작하는지 검증하는 과정을 진행하고 있다. 그중 Jenkins Pipeline이 정상적으로 동작하지 않았던 내용을 기록해 둔다. 현상 운영 환경에서 정상적으로 동작하는 Pipeline을 복사하여 빌드하면 아래와 같은 출력과 함께 장시간 대기한다. Pipeline은 kubernetes Agent에서 동작하도록 구성되어 있어 실행하면 Pipeline 동작을 위한 Pod가 생성되어야 했는데 Pod도 생성이 되지 않았다. 달리 확인할 부분이 없어 Jenkins 포드의 Jenkins 컨테이너 로그를 확인해..

Jenkins 2023.12.04

[Jenkins] Pipeline - 조건문 if

개요 2023.11.08 - [Jenkins] Pipeline - for 반복문 에서는 Jenkins 파이프라인에서 반복문을 사용하는 방법을 확인했는데, 이번 글에서는 조건문 if를 사용해보려고 한다. if 문 소괄호 내에 조건절을 기재하고, 중괄호를 블록을 묶는다. if(condition) { statement #1 statement #2 ... } else{ statement #3 statement #4 } 사용 예시 아래 예시는 간단히 boolean형 데이터로 초기화한 변수 값에 따라 분기 처리한 파이프라인이다. true 또는 false를 사용할 때는 전체 소문자로 기재한다. pipeline { agent any stages { stage('Example') { steps { script { boo..

Jenkins 2023.11.09

[Jenkins] Pipeline - 반복문 for

개요 2023.11.02 - [Jenkins] pipeline - 변수 선언 및 사용 2023.11.07 - [Jenkins] Pipeline - 동적 변수 사용 위 두 개 글에서 Jenkins Pipeline 상에서의 변수 사용에 대해서 알아보았는데, 이번 글에서는 반복문을 사용해보려고 한다. for 문 script 블록 내에서 다른 프로그래밍 언어처럼 for 문을 사용할 수 있다. for (int i = 0; i < 10; ++i) { echo "$i" } 예시 ) pipeline { agent any stages { stage('Example') { steps { script { for (int i = 0; i < 3; ++i) { echo "$i" } } } } } } for - in 만약 반복 ..

Jenkins 2023.11.08

[Jenkins] Pipeline - 동적 변수 사용

개요 2023.11.02 - [Jenkins] pipeline - 변수 선언 및 사용에서 변수를 선언하고 사용하는 방법에 대해서 알아보았다. 이 글에서는 변수를 동적인 값으로 초기화하는 방법에 대해서 정리해두려고 한다. 방법 환경 변수나 변수는 런타임에 초기화할 수 있다. shell scripts (sh), Windows batch scripts (bat) and PowerShell scripts (powershell) 등으로 종료 상태(returnStatus)나 표준 출력(returnStdout)으로 초기화하여 사용할 수 있다. 아래 예시는 script로 전달한 명령어를 실행한 결과의 표준 출력으로 변수를 초기화한 것이다. CC = """${sh( returnStdout: true, script: 'e..

Jenkins 2023.11.07

[Jenkins] Pipeline - Credentials 사용 2

개요 2023.11.03 - [Jenkins] Pipeline - Credentials 사용 1에서는 withCredentials 블록을 이용해서 Credentials를 사용해 봤는데, 이번 글에서는 credentials() 지시문을 이용해보려고 한다. credentials 생성 부분은 생략한다. credentials() credentials 메소드는 Jenkins에 정의되어 있는 자격 증명에 접근하는 기능을 제공한다. pipeline 또는 stage 블록 내에 사용할 수 있으며, 매개변수로 사용할 credentials의 이름을 전달한다. credentials('') # 예시 user_info = credentials('jenkins-admin-user') 지원하는 credentials 타입과 변수에 저..

Jenkins 2023.11.06

[Jenkins] Pipeline - Credentials 사용 1

개요 2023.11.02 - [Jenkins] pipeline - 변수 선언 및 사용 글에 이어서 이번 글에서는 Jenkins 파이프라인 사용 시 민감정보 취급을 위한 Credentails 사용 방법에 대해 정리한다. Credentials 설정 일단 사용할 Credentails를 생성한다. 이 글에서는 사용자 정보를 저장하려고 한다. 1. 왼쪽 메뉴 > Jenkins 관리 > Credentials로 이동 2. 민감정보를 저장할 Scope를 선택 테스트 목적이므로 이 글에선 System/Global 영역으로 저장한다. 3. 민감정보 값 설정 Jenkins가 지원하는 Credentails 유형은 여러가지가 있는데, 사용 중인 환경에 설치되어 있는 플러그인에 따라 다를 수 있다. 테스트 환경에서는 아래와 같은..

Jenkins 2023.11.03

[Jenkins] pipeline - 변수 선언 및 사용

개요 2023.10.30 - [Jenkins] 파이프라인 생성 2023.10.31 - [Jenkins] Pipeline 구성 요소 2023.11.01 - [Jenkins] Pipeline - agent Section 위 글을 통해 Jenkins 파이프라인에 대해 조금씩 공부해보고 있는데, 이번 글에서는 변수를 선언하고 사용하는 방법에 대해 정리한다. Declarative Pipeline에 대해서만 작성한다. pipeline 블록 밖에서 정의 Declarative Pipeline을 사용할 때, pipeline 블록 밖에서 변수를 정의한 뒤, pipeline 안에서 변수를 참조할 수 있다. 변수 선언 변수를 선언할 때는 def 키워드를 사용하거나 생략할 수 있으며, 변수의 데이터 타입을 지정할 수 있다. (..

Jenkins 2023.11.02
1 2 3