기술나눔

GitLab CI/CD는 자동화된 프로젝트 배포를 실현합니다.

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1 GitLab CI/CD 소개

  • GitLab CI/CD는 소프트웨어 개발을 위해 GitLab에 통합된 지속적인 통합(Continuous Integration), 지속적인 전달(Continuous Delivery) 및 지속적인 배포(Continuous Development) 도구 세트입니다. 이 시스템을 통해 개발 팀은 코드 변경 사항 감지, 구축, 테스트 및 최종 배포부터 프로덕션 환경에 이르기까지 소프트웨어 제공 프로세스를 자동화할 수 있습니다.

  • 지속적 통합(CI)

    • 코드가 버전 제어 시스템(예: GitLab 웨어하우스)에 푸시될 때마다 시스템이 자동으로 코드를 빌드하고 테스트합니다. 이를 통해 통합 오류를 발견하고 수정하는 동안 코드 변경 사항이 마스터 브랜치에 신속하게 통합됩니다.
  • 지속적 전달(CD)

    • 지속적인 통합을 기반으로 검증된 코드 변경 사항을 프로덕션 전 또는 프로덕션 준비 환경에 전달하는 작업을 더욱 자동화합니다. 이 단계에는 소프트웨어가 프로덕션 환경에 배포될 준비가 되었는지 확인하기 위한 보다 복잡한 테스트 모음, 성능 테스트 등이 포함될 수 있지만 실제 배포에는 수동 승인이 필요할 수 있습니다.
  • 지속적 배포(CD)

    • 지속적인 전달을 기반으로 전달 프로세스가 완전히 자동화되고, 모든 테스트를 통과한 코드는 수동 개입 없이 프로덕션 환경에 직접 배포될 수 있습니다. 이는 모든 코드 변경 사항이 테스트되어 사용자에게 빠르고 안전하게 전달된다는 것을 의미합니다.

2 GitLab CI/CD 및 GitLab Runner

  • GitLab CI/CD는 소프트웨어 개발 수명 주기에서 빌드, 테스트 및 배포 프로세스를 관리하는 GitLab 플랫폼에 통합된 서비스 세트입니다. 지속적인 통합과 지속적인 배포라는 목표를 달성하기 위해 프로젝트의 .gitlab-ci.yml 구성 파일을 읽어 다양한 작업(작업)과 프로세스(파이프라인)를 정의합니다.

  • GitLab Runner는 이러한 CI/CD 프로세스를 구현하는 실제 작업자 또는 실행 엔진입니다. 이는 다양한 운영 체제(예: Linux, macOS, Windows)에 설치하고 GitLab 인스턴스에 등록하고 바인딩할 수 있는 별도로 배포되는 프로그램입니다. 새로운 커밋이 GitLab CI/CD 프로세스를 트리거하면 GitLab은 등록된 Runner가 .gitlab-ci.yml에 정의된 작업을 실행하도록 예약합니다.

  • 간단히 말해서 GitLab CI/CD는 작업 수행 시기와 방법을 정의하는 플래너이자 코디네이터인 반면, GitLab Runner는 이러한 작업을 구체적으로 수행하는 엔터티입니다. 실행기는 공유(여러 프로젝트 제공) 또는 전용(단일 프로젝트만 제공)될 수 있으며 프로젝트 요구 사항에 따라 다양한 실행 환경으로 구성될 수 있습니다(예: Docker 컨테이너를 사용하여 빌드 환경 격리).

3 GitLab 러너

3.1 설치

  • Centos를 예로 들어보겠습니다.
  • gitlab-runner 설치 패키지 다운로드, 패키지 열에서 gitlab-runner를 검색하면 이 버전 el/7/x86_64/gitlab-runner-16.6.0-1.x86_64.rpm을 다운로드할 수 있습니다.
  • 설치 명령어는 다음과 같습니다
  •   # 安装
      sudo rpm -ivh gitlab-runner-16.6.0-1.x86_64.rpm	
      # 查看是否安装成功
      gitlab-runner -h