본문 바로가기

임시

GitLab Runner를 사용한 자동화된 배포 파이프라인 구축하기

서론

현대 소프트웨어 개발 환경에서 자동화된 배포는 필수적입니다. 수동 배포는 시간이 많이 소요될 뿐만 아니라, 오류가 발생할 가능성도 큽니다. 이를 해결하기 위해 GitLab CI/CD와 GitLab Runner를 활용한 자동화된 배포 파이프라인을 구축하는 방법을 소개합니다. 이 글에서는 GitLab Runner를 서버에 설치하고, 배포 파이프라인을 설정하는 전체 과정을 단계별로 설명하겠습니다.


1. GitLab Runner란?

GitLab Runner는 GitLab CI/CD 파이프라인을 실행하는 데 사용되는 도구입니다. Runner는 GitLab의 작업을 받아 서버에서 빌드, 테스트, 배포 작업을 자동으로 처리해 줍니다. 이를 통해 코드를 커밋할 때마다 배포까지 자동으로 진행되는 환경을 구축할 수 있습니다.


2. GitLab Runner 설치 및 설정

2.1. GitLab Runner 설치

먼저, 서버에 GitLab Runner를 설치합니다. 이 과정은 Ubuntu 기준으로 설명하겠습니다.

# 패키지 업데이트 sudo apt update # GitLab Runner 다운로드 및 설치 curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64 
sudo chmod +x /usr/local/bin/gitlab-runner 
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash 
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
 

2.2. GitLab Runner 등록

설치가 완료되면 GitLab Runner를 GitLab 프로젝트와 연결합니다. 등록하려면 GitLab에서 프로젝트 설정 페이지로 이동하여 "CI / CD" 설정의 "Runners" 섹션에서 등록 토큰을 찾습니다. 그런 다음, 다음 명령어를 실행합니다.

sudo gitlab-runner register
 

이 과정에서는 몇 가지 질문이 나오며, GitLab의 URL, 등록 토큰, Runner 이름, 실행할 작업 종류(docker, shell 등)를 선택해야 합니다. 서버에서 실행하는 경우 shell을 선택합니다.


3. GitLab CI/CD 설정 파일 작성 (.gitlab-ci.yml)

GitLab CI/CD는 .gitlab-ci.yml 파일을 통해 설정됩니다. 이 파일을 프로젝트의 루트 디렉토리에 작성하여 파이프라인을 구성합니다. 여기서는 간단한 Node.js 애플리케이션을 서버에 배포하는 예시를 들어 설명하겠습니다.

# .gitlab-ci.yml 파일 
stages: 
- build 
- deploy 
# 빌드 단계 
build: 
  stage: build 
  script: 
     - echo "빌드 중..." 
     - npm install 
     - npm run build 
  only: 
     - main 
# 배포 단계 
deploy: 
  stage: deploy 
  script: 
     - echo "서버에 배포 중..." 
     - rsync -avz --delete ./dist/ user@server_ip:/path/to/deploy 
   only: 
     - main
 
 

위 예제에서는 main 브랜치에 변경 사항이 있을 때마다 build와 deploy 두 단계를 거칩니다.

  • build: 애플리케이션을 빌드합니다.
  • deploy: rsync를 사용하여 서버로 파일을 전송합니다. user@server_ip와 /path/to/deploy 부분을 실제 서버 사용자와 경로로 수정해야 합니다.

4. SSH 키 설정 (무인 배포를 위해)

서버에 자동으로 배포하려면 GitLab Runner가 서버에 무인으로 접속할 수 있어야 합니다. 이를 위해 SSH 키를 설정합니다

1. 로컬에서 SSH 키 생성:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

2. 서버에 공개 키 추가: 생성된 ~/.ssh/id_rsa.pub 파일의 내용을 서버의 ~/.ssh/authorized_keys에 추가합니다.

3. GitLab CI/CD에 비밀 키 등록: GitLab 프로젝트의 Settings > CI / CD > Variables에서 SSH_PRIVATE_KEY라는 이름으로 비밀 키(~/.ssh/id_rsa 파일의 내용)를 추가합니다.


5. 배포 테스트

이제 모든 설정이 완료되었으므로, main 브랜치에 코드를 커밋하면 GitLab Runner가 자동으로 배포를 수행하게 됩니다.

 
git add . 
git commit -m "자동 배포 테스트" 
git push origin main

커밋 후 GitLab CI/CD의 파이프라인 페이지에서 빌드와 배포가 진행되는 것을 확인할 수 있습니다.


결론

GitLab Runner와 GitLab CI/CD를 활용하면 배포 과정을 자동화하여 개발 효율을 크게 높일 수 있습니다. 이 방법을 사용하면 코드 변경 사항이 생길 때마다 서버에 자동으로 배포되므로, 더 빠르고 안전하게 애플리케이션을 업데이트할 수 있습니다. 지금 바로 GitLab Runner를 설정하여 자동화된 배포 파이프라인을 구축해보세요!

반응형