목록DevOps (89)
내 잡다한 노트
tmux는 터미널 멀티플렉서로, 하나의 터미널에서 여러 세션을 실행하거나, 세션을 유지하고 다시 연결할 수 있도록 도와줍니다. 다음은 tmux를 효율적으로 사용하기 위해 자주 쓰이는 명령어와 설명입니다. 기본 tmux 명령어1. 세션 관리새 세션 생성새로운 tmux 세션을 생성하고 이름을 지정합니다.tmux new -s 현재 세션에서 분리세션에서 빠져나오지만, 세션은 백그라운드에서 계속 실행됩니다.Ctrl-b d세션 목록 보기실행 중인 모든 tmux 세션을 표시합니다.tmux list-sessions 기존 세션에 연결특정 세션에 다시 연결합니다.tmux attach -t 세션 종료세션 안에서 exit을 입력하여 종료.exit
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..
Dockerfile에서 UID를 설정하거나 명시적으로 처리하는 이유는 컨테이너의 사용자 권한 관리 및 보안성을 강화하기 위해서입니다. 아래 주요 이유를 살펴보겠습니다.1. 호스트와의 파일 권한 충돌 방지컨테이너에서 생성된 파일은 기본적으로 컨테이너 내부의 사용자 ID(UID)와 호스트 시스템의 사용자 ID가 다를 수 있습니다. 이 경우, 컨테이너가 생성한 파일이 호스트에서 읽기/쓰기 불가능하거나, 접근 권한 문제를 일으킬 수 있습니다.예: 컨테이너에서 UID가 1001인 사용자가 생성한 파일은 호스트에서 다른 사용자처럼 보일 수 있습니다.해결: Dockerfile에서 컨테이너 내부의 사용자와 UID를 명시적으로 설정하면, 호스트 시스템과의 호환성을 높일 수 있습니다.2. 보안 강화컨테이너는 기본적으로 r..
**PROVISIONING(프로비저닝)**은 IT와 클라우드 환경에서 자원을 설정, 준비, 관리하여 사용자가 사용할 수 있도록 만드는 과정을 의미합니다. 이는 물리적 하드웨어, 소프트웨어, 네트워크, 스토리지, 가상화 자원 또는 사용자 계정을 포함한 다양한 리소스를 포함할 수 있습니다. PROVISIONING의 기본 개념프로비저닝은 자원 할당 및 준비를 목적으로 하며, 주로 다음 단계로 구성됩니다:자원의 준비 (Preparation)필요한 하드웨어 또는 소프트웨어를 선택하고 설치, 설정.예: 클라우드 환경에서는 컴퓨팅 인스턴스를 생성하거나 데이터베이스를 설정.구성(Configuration)사용자 정의 요구사항에 맞게 시스템 또는 자원을 설정.예: 서버의 CPU, 메모리 크기, 네트워크 설정 등을 정의...
처음에 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..