목록DevOps (88)
내 잡다한 노트
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으로 전..
logrotate는 리눅스 시스템에서 로그 파일을 효율적이고 자동적으로 관리하기 위한 도구이다. 서버나 애플리케이션은 동작하면서 다양한 이벤트 및 상태 정보, 에러 메시지를 로그로 기록하게 되는데, 이 로그 파일의 크기가 무한정 커지면 디스크를 과도하게 차지하고 관리가 어려워진다. logrotate는 이러한 로그 파일을 일정한 정책에 따라 주기적으로 회전(rotation)하거나, 오래된 로그를 삭제하거나, 압축하고, 권한을 재설정하는 등 로그 파일 관리 전반을 자동화하여 시스템 관리자의 부담을 줄여준다.아래는 logrotate의 주요 개념과 동작 방식, 설정 방법 등에 대한 자세한 설명이다. 주요 기능 및 동작 원리로그 회전(log rotation):특정 주기(일별, 주별, 월별 또는 로그 크기 기준)에..
/etc/environment 파일에서 전역 환경변수를 설정할 수 있다. 이 파일은 PAM 로그인 시 자동으로 읽혀서 모든 로그인 세션에 환경 변수를 반영한다.(단, GUI 환경에서는 다르게 동작할 수도 있다.)
먼저, 가상화란? -> 하나의 물리적 서버에서 여러 운영체제와 애플리케이션을 실행할 수 있도록 하는 기술 컨테이너나 VM의 근본적인 기술은 가상화이다. 컨테이너는 호스트 OS 커널을 공유한다. 그리고 컨테이너 간에는 프로세스 수준의 격리를 사용한다. (cgroups, namespaces ) 그에 비해, 가상화는 하이퍼바이저 위에서 완전한 운영 체제를 실행한다. 애플리케이션과 해당 OS를 모두 포함하므로 크기가 크다.하드웨어만 공유를 하게 된다. (호스트 OS와 게스트 OS는 별개)그리고, 각 VM은 하드웨어 수준에서 완전히 격리된다. 둘은 성능의 차이도 나는데,컨테이너는 호스트 OS 커널을 공유하므로 부팅 과정이 필요가 없고, 애플리케이션 수준에서 바로 실행이 가능하다.또한, 가볍게 사용할 수 있다. ..
**멀티스테이지 빌드(Multi-stage Build)**는 Dockerfile에서 단계별로 빌드 환경을 분리하고, 최종 실행에 필요한 최소한의 파일만 포함하여 경량화된 이미지를 생성하는 방식입니다. 멀티스테이지 빌드란?멀티스테이지 빌드는 Dockerfile 내에서 여러 베이스 이미지를 정의하고, 각 단계(stage)에서 작업을 수행하며, 최종 단계에서는 필요한 파일만 가져옵니다.빌드 도구(컴파일러, 패키지 매니저 등)는 중간 단계에서만 사용하고, 최종 이미지는 실행 파일이나 애플리케이션 코드만 포함.최종 이미지는 작고, 불필요한 파일(빌드 도구 등)이 제거된 상태로 배포. 멀티스테이지 빌드를 사용하는 이유이미지 크기 최소화빌드 과정에서 필요한 도구(예: gcc, make)가 최종 이미지에 포함되지 않..
Dockerfile 최적화는 이미지 크기를 줄이고, 빌드 속도를 개선하며, 실행 성능과 보안을 강화하는 데 중점을 둡니다. 잘 최적화된 Dockerfile은 효율적인 CI/CD 파이프라인과 배포 환경을 구축하는 데 필수적입니다. 1. 이미지 크기 줄이기2. 빌드 속도 개선3. 실행 성능4. 보안 이걸 중점으로 최적화를 하도록 하자. 1. 이미지 크기 최적화(1) 경량 베이스 이미지 사용항상 필요한 최소한의 구성 요소만 포함된 경량 베이스 이미지를 사용합니다.예:ubuntu 대신 debian:slim 또는 alpine 사용.Python 프로젝트의 경우 python:3.9-slim 사용. (2) 멀티스테이지 빌드빌드 단계와 실행 단계를 분리하여 최종 이미지에서 불필요한 빌드 도구를 제외.멀티스테이지 빌드..
tmux는 터미널 멀티플렉서로, 하나의 터미널에서 여러 세션을 실행하거나, 세션을 유지하고 다시 연결할 수 있도록 도와줍니다. 다음은 tmux를 효율적으로 사용하기 위해 자주 쓰이는 명령어와 설명입니다. 기본 tmux 명령어1. 세션 관리새 세션 생성새로운 tmux 세션을 생성하고 이름을 지정합니다.tmux new -s 현재 세션에서 분리세션에서 빠져나오지만, 세션은 백그라운드에서 계속 실행됩니다.Ctrl-b d세션 목록 보기실행 중인 모든 tmux 세션을 표시합니다.tmux list-sessions 기존 세션에 연결특정 세션에 다시 연결합니다.tmux attach -t 세션 종료세션 안에서 exit을 입력하여 종료.exit