jenkins 23

[Jenkins] Pipeline - agent Section

Sections Jenkins 파이프라인에서 Section이란 Declarative Pipeline의 구성 요소로, 하나 이상의 Directives(지시문)이나 Steps를 포함한다. agent, post, stages, steps에 해당된다. agent : 전체 파이프라인 또는 특정 stage를 실행할 환경 지정 post : 파이프라인 또는 stage 실행이 완료될 때 실행되는 추가 steps 정의 stages : 하나 이상의 단계 지시문(stage directives) 정의 steps : 단계 지시문(stage directives)에서 실행할 하나 이상의 step 정의 이 글에서는 Sections 중 agent에 대해서 정리해보려고 한다. agent 전체 파이프라인 또는 특정 stage를 실행한 환경..

Jenkins 2023.11.01

[Jenkins] Pipeline 구성 요소

개요 2023.10.30 - [Jenkins] 파이프라인 생성에서 간단하게 예제를 이용해 파이프라인을 생성하고 실행해 봤는데, 이 글에서는 파이프라인을 구성하고 있는 요소에 대해 정리해보려고 한다. 구성 요소 Pipeline CD 파이프라인의 사용자 정의 모델. 일반적으로 애플리케이션을 빌드하고, 테스트한 뒤 전달하는 과정을 포함하는 전체적인 빌드 프로세스를 정의한다. Node Jenkins 환경의 일부임과 동시에 파이프라인을 실행할 수 있는 머신. Stage 전체 파이프라인을 통해 수행되는 태스크를 개념적으로 구별한 하위 집합. Jenkins 파이프라인의 상태와 진행 상황을 시각화하는 기준이 된다. Step 단일 작업. Jenkins에게 어떤 시점에 무엇을 해야 하는지 정의한다. Pipeline 구문 ..

Jenkins 2023.10.31

[Jenkins] 파이프라인 생성

Jenkins Pipeline Jenkins는 연속적인 작업을 하나의 파이프라인으로 묶어서 관리할 수 있도록 하는 Pipeline 플러그인을 제공한다. 개발자가 개발한 소프트웨어를 사용자에게 제공하기 위해서는 개발한 소스를 빌드, 테스트, 배포하는 일련의 과정이 필요하다. 개발한 소프트웨어를 유지보수하기 위해서는 위 과정이 반복적으로 발생하게 되는데, 반복적으로 발생하는 빌드, 배포 과정의 자동화와 함께 CI/CD(Continuous Integration / Continuous Delivery)라는 방법론이 자리 잡았다. Continuous Delivery (CD)는 빌드와 테스트가 완료되어 Git과 같은 버전 제어 저장소에 업로드된 소프트웨어를 사용자에게 전달하는 과정을 자동화하는 것을 의미한다. 대표..

Jenkins 2023.10.30

[Jenkins] 프로젝트에 여러 스케쥴 설정 걸기

개요 주기적으로 실행해야 하는 젠킨스 프로젝트가 있다. 기존에는 KST 기준 매주 화요일 오후 2시 (UTC 05시)에 동작해야 했는데, 스케쥴링 주기가 아래처럼 변경되었다. - KST 매주 화요일 오전 11시 (UTC 화요일 02시) - KST 매주 금요일 오전 8시 (UTC 목요일 23시) 한 프로젝트에 여러 스케쥴을 설정할 수 있나……? 확인해본다. 주기적 빌드(스케쥴링) 설정 Jenkins 프로젝트의 스케쥴링을 설정하는 방법은 다음과 같다. 1. 프로젝트 > 구성으로 접근 2. 빌드 유발 > Build periodically 체크 박스 선택 Build periodically를 선택하고 스케쥴 설정은 cron 형식으로 지정한다. 스케쥴링 추가 설정 보통 cron 형식의 스케쥴을 crontab에서 많..

Jenkins 2023.07.17

[Helm/Jenkins] CAcert를 이용한 LDAPS 적용

개요 2022.05.16 - [Jenkins] LDAP 연동으로 Jenkins에 LDAP 적용을 했었는데, 이번에는 인증서를 이용한 LDAPS 적용이 필요해 방법을 정리한다. 쿠버네티스 클러스터에 Helm으로 설치한 Jenkins로, 사용한 Chart는 이미 deprecated 된 https://github.com/helm/charts/tree/master/stable/jenkins이다. init container를 이용해 컨테이너 환경 변수로 전달한 인증서를 적용하는 방법으로, https://github.com/helm/charts/issues/23374를 참고하여 진행했다. 적용 방식 1. 공유 공간으로 cacerts-share이라는 이름의 emptyDir volume 생성 2. jenkins 컨테이..

Jenkins 2023.03.20

[Jenkins] SSH 원격 서버에서 쉘 실행하기

개요 어떤 서버에 위치하고 있는 쉘 스크립트를 Jenkins를 이용해 실행시키려고 한다. 물론 Jenkins가 동작하고 있는 서버에 스크립트를 옮기는 것을 먼저 생각했지만, 이 글의 Jenkins는 쿠버네티스 환경에서 동작하고 있어 적용이 쉽지 않았다. 다행히 SSH 플러그인을 이용하면 Jenkins가 원격 서버에 SSH로 연결하여 쉘을 실행할 수 있다고 한다. 크게 아래와 같은 절차로 적용할 수 있다. SSH 플러그인 설치 Credential 설정 SSH Remote Host 추가 프로젝트에 적용 순서대로 방법을 정리한다. 1. SSH 플러그인 설치 Jenkins 관리 > 플러그인 관리로 이동하여 SSH 플러그인이 설치되어 있는지 확인한다. 설치되어 있지 않으면 설치한다. 2. Credential 설정..

Jenkins 2022.05.27

[Jenkins] 쉘 실행(Execute shell) 프로젝트 생성 및 실행

Jenkins의 기본적인 프로젝트 생성 방법을 정리하기 위해 쉘을 실행하는 프로젝트를 생성하고 실행해보려고 한다. 생성 방법 1. 왼쪽 메뉴에서 새로운 Item 클릭 2. 이름과 아이템 유형 설정 유형은 Freestyle project를 선택한다. OK를 클릭하면 빈 프로젝트가 생성된 것을 볼 수 있다. 이 화면은 프로젝트의 구성 페이지에 해당한다. 3. 프로젝트 구성 페이지에서 Build > Add build step > Execute shell 클릭 4. 실행할 명령어 작성 후 저장 실행 프로젝트 메뉴에서 Build Now를 클릭한다. 아래의 Build History에서 빌드 진행 및 성공 여부를 확인할 수 있다. 실행 결과 확인 빌드 히스토리에서 결과를 확인할 빌드 번호를 선택한다. Console ..

Jenkins 2022.05.26

Helm으로 배포한 Jenkins 인코딩 설정

온프레미스 쿠버네티스 환경에 HelmRelease로 설치한 Jenkins를 사용 중이다. 최근 한글 처리가 정상적으로 이뤄지지 않는 것 같아 확인해보니 인코딩이 ANSI로 설정되어 있었다. 이 설정을 UTF-8로 변경해보려고 한다. Helm Chart 정보 Repository: https://charts.helm.sh/stable Name: jenkins Version : 1.16.0 참고로 Jenkins 버전은 2.303.1이다. 인코딩 설정 확인 Jenkins 관리 > System Information : 시스템 정보로 접근하면 확인할 수 있다. 바로 시스템 정보 페이지로 가고 싶다면 jenkins URL 끝에 /systemInfo를 붙이면 된다. file.encoding이 ANSI_X3.4-1968..

Jenkins 2022.05.21

[LDAP] error code 32 - 0000208D: NameErr: DSID-0310020A, problem 2001 (NO_OBJECT), data 0, best match of:

2022.05.16 - [Jenkins] LDAP 연동에서 정리한 내용대로 설정값을 입력한 뒤 테스트를 했더니 에러가 발생했다. 입력한 설정값은 대충 아래와 같다. (보안 문제로 블로그 글에서는 적당히 변경하여 작성한다.) Server : 192.168.10.45 root DN : OU=CDX부문(000000),OU=Domestic(Korea),OU=CDX Users,DC=CDX,DC=net User search filter : cn={0} Manager DN : tistory.help@tistory.com Manager Password : 비밀번호 테스트 결과 검색해보니 'LDAP: error code 32 - 0000208D: NameErr: DSID-0310020A, problem 2001 (NO_..

Jenkins 2022.05.17

[Jenkins] LDAP 연동

Jenkins는 기본적으로 내부 사용자 데이터베이스를 사용하기 때문에 각 사용자를 수동으로 생성해야 한다. 다만 LDAP 플러그인을 설치하여 구성하면 OpenLDAP과 같은 외부 LDAP 서버를 이용해 사용자를 이용할 수 있다. 이 글에서는 Jenkins와 LDAP 연동 방법을 간단히 정리한다. 방법 1. LDAP 플러그인 설치 LDAP 연동을 하기 위해서는 LDAP 플러그인 설치가 필요하다. 관리자 계정으로 로그인한 뒤, Jenkins 관리 > 플러그인 관리로 이동한다. 설치된 플러그인 목록에 LDAP이 존재하는지 확인한다. 설치되어있지 않다면 설치 가능 목록에서 찾아 설치한다. 2. LDAP 설정 구성 Jenkins 관리 > Configure Global Security 로 이동한다. Security..

Jenkins 2022.05.16
1 2 3