목록DevOps/Jenkins (9)
내 잡다한 노트
Jenkins의 공식 문서에서 Organization Folders 사용을 권장하는 이유는 주로 대규모 프로젝트 관리, 자동화된 리포지토리 발견, 일관된 파이프라인 관리 등을 통해 CI/CD 프로세스를 더욱 효율적이고 확장 가능하게 만들기 때문입니다. 1. Organization Folders란?Organization Folders는 GitHub, GitLab, Bitbucket과 같은 소스 코드 관리(SCM) 플랫폼에서 조직(Organization) 또는 사용자(User) 계정 아래에 있는 모든 리포지토리를 자동으로 탐색하고, 각 리포지토리에 대해 개별적인 Jenkins 파이프라인을 생성하는 기능입니다. 이를 통해 여러 리포지토리를 중앙에서 관리하고, 자동화된 방식으로 빌드 및 배포 파이프라인을 설정할..
1. Declarative Pipeline장점가독성구조화된 문법을 사용하므로 코드가 직관적이고 읽기 쉬움.정해진 구문(pipeline, stages, steps) 덕분에 초보자도 쉽게 이해 가능.에러 방지Jenkins에서 선언형 문법을 강제하기 때문에 문법 오류를 줄일 수 있음.Jenkins의 자동 완성 및 구문 검증 기능과 잘 연동됨.표준화팀 간에 파이프라인 작성 방식이 일관될 수 있음.반복 가능한 작업에 적합.내장 기능post 블록과 같은 후처리 단계(always, success, failure)를 기본 제공.agent 설정, 환경 변수(environment) 선언이 간단.단점제한된 유연성복잡한 조건 분기나 동적인 작업에는 적합하지 않음.특정한 로직을 구현하려면 Scripted Pipeline으로 전..
Jenkins의 Scripted Pipeline은 Groovy 언어를 기반으로 작성됩니다. Scripted Pipeline은 Jenkins Pipeline의 저수준 구문으로, Jenkins가 Groovy를 사용하여 동작하기 때문에 Scripted Pipeline은 Groovy로 작성해야 합니다. 왜 Groovy만 사용 가능한가?Jenkins의 내부 구현이 Groovy 기반Jenkins는 내부적으로 Groovy를 기반으로 동작하며, Scripted Pipeline은 이를 직접 활용하는 방식입니다.Groovy는 JVM 기반Jenkins는 Java 기반으로 동작하며, Groovy는 JVM(Java Virtual Machine) 위에서 실행되므로 호환성이 뛰어납니다. 다른 언어를 사용할 수 없는 이유는?Jenk..
Jenkinsfile은 Jenkins 파이프라인을 정의하는 스크립트 파일로, CI/CD 작업(Continuous Integration/Continuous Deployment)을 자동화하기 위한 핵심 구성 파일입니다. Jenkinsfile은 Jenkins가 수행할 빌드, 테스트, 배포 등 여러 작업을 명시적으로 작성한 파일입니다. Jenkinsfile의 두 가지 스타일1. Declarative Pipeline (선언형)Jenkins Pipeline을 직관적이고 읽기 쉽게 작성할 수 있는 고수준 구문 제공.CI/CD 작업 흐름을 pipeline, stages, steps로 구조화.장점:간결하고, 초보자도 사용하기 쉬움.에러 처리가 자동으로 포함됨.예:pipeline { agent any st..
처음에 jenkins를 설치하고 password를 입력하고 플러그인을 생성한 뒤에 볼 수 있는 페이지이다.각각에 대해 알아보고자 글을 작성하게 됐다. 1. Freestyle Project설명: 가장 기본적인 Jenkins 작업 유형으로, 단순한 CI/CD 프로세스에 사용됩니다.SCM(소스 코드 관리)에서 소스 코드를 가져옴.빌드 단계를 직렬로 실행.빌드 후 단계(예: 아티팩트 저장, 이메일 알림 전송 등)를 추가 가능.특징:간단한 빌드/배포 파이프라인 구현.플러그인을 통해 추가 기능 확장 가능.적합한 경우:간단한 CI/CD 작업(예: 코드 빌드, 스크립트 실행).파이프라인 구성 없이 빠르게 작업 설정이 필요한 경우.2. Pipeline설명: Jenkins의 강력한 작업 유형으로, 스크립트 기반 파이프..
Jenkins에서 agent는 파이프라인 작업을 실행하는 데 필요한 환경을 제공하는 컴퓨터나 컨테이너를 의미합니다. 파이프라인의 각 단계(빌드, 테스트, 배포 등)는 이 agent에서 실행됩니다. 1. Jenkins의 Agent란?역할파이프라인 작업 실행Jenkins Master(Controller)에서 정의한 작업을 받아 실제로 실행하는 역할을 합니다.예: 소스코드 빌드, 테스트 수행, 배포 작업.작업 분배Jenkins Master는 작업을 분배하고 관리하며, Agent는 할당된 작업을 실행합니다.여러 Agent를 사용하면 작업을 병렬로 처리하거나, 특정 환경에서 실행할 작업을 분리할 수 있습니다.환경 제공빌드/테스트 작업에 필요한 도구와 라이브러리가 설치된 환경(예: 특정 운영체제, 도커 컨테이너 등..
Groovy는 Java 플랫폼 위에서 실행되는 동적 객체 지향 프로그래밍 언어입니다. Apache Software Foundation에서 관리하며, Jenkins와 같은 자동화 도구에서 스크립트를 작성하고 워크플로우를 정의하는 데 자주 사용됩니다. 1. Groovy란?Groovy는 다음과 같은 특징을 가진 프로그래밍 언어입니다:Java 기반 언어Groovy는 Java Virtual Machine(JVM) 위에서 실행되며, Java 코드와 100% 호환됩니다.Java 라이브러리를 직접 사용하거나 Java 코드와 혼합해서 사용할 수 있습니다.동적 타입 지원Java처럼 강타입 언어가 아닌 **동적 타입(dynamic typing)**을 지원하여 코드를 더 간결하게 작성할 수 있습니다.스크립팅 언어Groovy..
젠킨스의 Master-Agent 아키텍처는 작업(빌드, 테스트, 배포 등)을 분산해서 실행하도록 설계되었습니다. 이를 통해 젠킨스는 확장성과 성능을 극대화할 수 있습니다. 젠킨스 에이전트란?**에이전트(Agent)**는 젠킨스 마스터의 지시에 따라 실제 빌드나 작업을 실행하는 서버 또는 프로세스입니다.이를 통해 젠킨스는 여러 서버에서 병렬로 작업을 실행할 수 있어 대규모 프로젝트에서도 효율적으로 운영됩니다. Master-Agent 아키텍처Master (컨트롤러)젠킨스의 중심 역할을 담당하며 다음과 같은 기능을 수행합니다:작업(빌드, 테스트, 배포) 스케줄링.작업 로그 수집 및 표시.에이전트 관리.플러그인 및 사용자 인터페이스 제공.Agent (노드)실제로 작업을 실행하는 노드로, CPU, 메모리 등의 자..