블로그로 돌아가기

VPS에서 Git으로 자동 배포를 구성하는 방법

VPS에서 Git으로 자동 배포를 구성하는 방법

Git은 소프트웨어 개발 분야에서 가장 인기 있는 버전 관리 시스템입니다. 오픈 소스이며 2005년부터 Linus Torvalds(유명한 개발자이자 Linux의 창시자)에 의해 활발히 유지 관리되고 있습니다. 오늘날 수많은 소프트웨어 프로젝트(상용 프로젝트 포함)가 버전 관리를 위해 Git을 사용하고 있습니다.

Git은 분산 아키텍처를 따르므로 다음과 같은 완벽한 예가 됩니다: DVCS (Distributed Version Control System). Git을 사용하면 로컬 저장소와 원격 저장소를 동시에 관리할 수 있습니다. 이 가이드에서는 VPS를 사용하여 Git 프로젝트의 자동 배포를 구성하는 방법을 보여드리겠습니다.

전제 조건

이 가이드에서는 하나의 로컬 저장소와 VPS의 원격 저장소가 사용됩니다. 로컬 저장소는 변경 사항을 원격 저장소로 푸시합니다. 원격 저장소에서 변경 사항을 beta 또는  live 브랜치로 푸시할 수 있습니다. 이를 위해 먼저 몇 가지 전제 조건을 해결해야 합니다.

VPS에 안전하게 연결하기 위해 SSH를 사용합니다. 다행히 Git도 원격 저장소에 연결하기 위한 프로토콜로 SSH를 지원합니다. 이 가이드에서는 다음을 살펴봅니다: Ubuntu에서 원격 서버에 연결하기 위해 SSH를 구성하는 방법.

VPS 구성하기

원격 서버의 구성은 다음과 같습니다:

  • 라이브 디렉터리: /var/www/dummy-domain.com
  • 서버 저장소: /var/repo/site.git

로컬 머신에서 Git은 업데이트를 VPS 저장소로 푸시합니다. VPS 저장소에서 Git이 라이브 디렉터리로 자동 푸시하는 데 사용할 스크립트를 구성합니다. 다음을 위한 저장소를 구성할 수도 있습니다: beta 릴리스.

  • 저장소 생성하기

VPS에 연결하고 저장소 위치를 생성합니다:

Deployment with Git screenshot 1

다음으로, Git 저장소를 초기화합니다:

Deployment with Git screenshot 2

여기서 플래그 --bare는 소스 파일 없이 버전 관리 구성 요소만 존재함을 나타냅니다.

  • 훅(Hooks)

다음으로, 저장소의 훅을 구성하겠습니다. 모든 Git 저장소에는 다음과 같은 이름의 폴더가 포함되어 있습니다: hooks. 이 폴더에는 훅 및 다양한 사용자 정의 작업의 템플릿 역할을 하는 샘플 파일이 포함되어 있습니다.

Git의 공식 문서에 따르면, 세 가지 유형의 훅이 있습니다:

  • pre-receive: 서버가 푸시 요청을 받는 즉시 실행됩니다.
  • post-receive: 푸시 요청이 완료되면 실행됩니다.
  • update: pre-receive와 유사합니다. 하지만 브랜치당 한 번씩 실행됩니다.

저장소 위치에서 다음 명령을 실행합니다: ls 명령:

Deployment with Git code screenshot 3

현재 디렉터리를 다음으로 변경합니다: hooks:

Deployment with Git code screenshot 4

이제 다음 스크립트를 생성합니다: post-receive 스크립트:

스크립트 내부에 다음 코드를 입력합니다. 디렉터리 위치를 상황에 맞게 변경해야 합니다:

Deployment with Git code screenshot 6

파일을 저장하고 편집기를 닫습니다. 파일을 실행 파일로 설정합니다:

Deployment with Git code screenshot 7

이제 푸시가 완료될 때마다 Git은 다음 스크립트를 확인합니다: post-receive 스크립트를 확인하고 그에 따라 파일을 제자리에 배치합니다.

로컬 머신 구성하기

원격 머신이 들어오는 Git 프로젝트 업데이트를 수락할 준비가 되었습니다. 다음으로, VPS를 원격 Git 서버로 사용하도록 로컬 저장소를 구성하겠습니다.

샘플 Git 프로젝트 디렉터리를 만들어 보겠습니다:

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

이제 저장소를 초기화합니다:

Deployment with Git code screenshot 9

저장소의 원격 경로를 선언해야 합니다. 여기서는 원격 위치를 다음 브랜치로 지칭하겠습니다: live 브랜치. 그런 다음 아래 명령을 실행합니다:

sudo git remote

테스트해 보겠습니다. 프로젝트 디렉터리에 셸 스크립트를 추가했습니다:

project directory

다음으로, 프로젝트에 파일을 추가하고 커밋을 수행합니다:

Deployment with Git code screenshot 10

다음 명령에서는 프로젝트를 라이브 서버로 푸시합니다:

Deployment with Git code screenshot 11

Git은 SSH를 사용하여 VPS에 연결합니다. SSH 연결이 비밀번호를 사용하도록 구성된 경우, Git은 인증 비밀번호를 요구합니다.

베타 저장소

프로젝트를 한 번에 배포하지 않으려면 어떻게 해야 할까요? 어쩌면 베타 디렉터리 내에서 추가 테스트가 필요할 수 있습니다. 지금까지 설명한 방법을 사용하여 VPS에 베타 브랜치라고 하는 또 다른 브랜치를 만들 수 있습니다.

  • VPS에서 베타 브랜치 구성하기

먼저 VPS용 디렉터리를 생성해야 합니다. VPS에 연결하고 /var/www:

이제 베타 브랜치 역할을 할 Git 저장소가 필요합니다:

저장소를 초기화합니다:

sudo git init

이전과 마찬가지로 post-receive 스크립트를 구현합니다:

sudo nano

그 후, 다음 코드를 입력합니다:

GNU nano

파일을 저장하고 편집기를 닫습니다. post-receive를 실행 파일로 지정합니다:

sudo chmod
  • 로컬 머신에 베타 저장소 추가하기

이제 로컬 저장소에 베타 저장소를 추가할 준비가 되었습니다. 로컬 프로젝트 디렉터리 내에서 다음 Git 명령을 실행합니다:

짜잔! 이제 로컬 저장소에 베타 원격 저장소가 구성되었습니다. 변경 사항을 푸시해 보세요:

sudo git add
  • VPS에서 베타에서 라이브로 이동하기

모든 변경 사항이 베타 repo. 변경 사항을 라이브 repo로 어떻게 푸시할까요? 매우 간단합니다. VPS의 베타 저장소 내에서 로컬 라이브 저장소를 추가합니다. 그런 다음 단순히 베타 릴리스를 라이브 저장소로 푸시하면 됩니다.

VPS에 연결하고 다음 명령을 실행합니다:

그런 다음 베타 릴리스를 라이브로 푸시할 수 있습니다.:

sudo git push live master

마치며

이 가이드는 Git 프로젝트의 원격 저장소로 VPS를 구성하고 사용하는 방법을 성공적으로 보여줍니다. VPS는 복잡한 과정 없이 최신 코드와 파일을 자동으로 배포할 수 있습니다. 또한 여러 개발 팀 간의 협업을 위한 중심 역할을 할 수도 있습니다.

Git의 도움으로 자동 배포를 위한 간단한 메커니즘을 구축할 수 있습니다. 하지만 적절한 프로젝트 관리를 위해서는 GitLab과 같은 도구를 사용하는 것이 좋습니다. 다음 가이드에서는 VPS에 GitLab 설치 및 배포하기를 통해 여러 프로젝트를 관리하는 방법을 소개합니다. 또한 Ubuntu 20.04에서 GitLab 지속적 통합(CI) 파이프라인을 설정하는 방법.

즐거운 컴퓨팅 되세요!

author

Hark Labs

작성자 · CloudSigma

Preslav Dobrev는 CloudSigma의 크리에이티브 디자이너로서, 전통적이고 혁신적인 마케팅 채널을 활용하여 일관된 비즈니스 정체성을 구축하는 데 중점을 두고 있습니다. 그는 영향력 있는 브랜드 내러티브를 창출하기 위해 예술적 비전과 전략적 마케팅을 결합하는 데 능숙합니다.

댓글

아직 댓글이 없습니다. 첫 번째로 작성해 보세요.