서론
현대 소프트웨어 개발 환경에서 자동화된 배포는 필수적입니다. 수동 배포는 시간이 많이 소요될 뿐만 아니라, 오류가 발생할 가능성도 큽니다. 이를 해결하기 위해 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를 설정하여 자동화된 배포 파이프라인을 구축해보세요!
'임시' 카테고리의 다른 글
Android 에뮬레이터 무한 부팅(boot loop) 문제 해결 방법 총정리 (0) | 2025.02.28 |
---|---|
Windows에서 Mac으로 전환한 사용자들을 위한 키보드와 마우스 설정 및 적응 꿀팁 (0) | 2024.11.19 |