KartDraw

GitLab 설치하기 – 리눅스 패키지

GitLab은 Git저장소, 이슈 트래커, 위키, CI/CD 파이프라인 등 SW Life-Cycle을 통합 관리할 수 있는 웹 기반 도구 입니다.

GitLab은 리눅스를 기반으로 개발되었기 때문에 윈도우에서는 동작하지 않습니다. 설치 방식은 리눅스 패키지, helm chart, docker 등을 제공합니다. 상세 내용은 아래 GitLab 공식 문서를 참고합니다.

https://docs.gitlab.com/ee/install/install_methods.html

본 가이드에서는 AWS ec2의 Amazon Linux 2에 GitLab 리눅스 패키지 설치 방법을 알아 보겠습니다.


시스템 요구 사양

GitLab 설치를 위한 시스템 요구 사양은 사용자 규모에 따라 달라집니다.
GitLab에서 가이드 하는 Referece architecture를 참고하여 설치 방식과 예상 사용자 수에 따라 사양을 추정합니다.

https://docs.gitlab.com/ee/administration/reference_architectures/

공식 문서에 따르면, 500유저 미만의 시스템인 경우 최소 사양을 다음과 같이 가이드하고 있습니다.

  • CPU: 4Core
  • Memory: 4GB

다만, 최소 사양으로 설치할 경우 Swap 메모리를 최소 2GB 이상 설정할 것을 권장하고 있습니다. 실제로도 GitLab을 Memory 4GB에 설치해 보면 성능에 이슈가 있습니다. 경험상 가능하면 메모리는 8GB 이상으로 구성할 것이 좋습니다.


SWAP 설정(옵션)

메모리가 4GB인 경우 메모리 부족 이슈가 발생할 수 있습니다. 따라서, Swap 메모리 설정이 필수적입니다.
다음 명령을 수행하셔 Swap을 설정합니다.

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

#재부팅 시에도 swap을 적용하기 위해 다음 명령을 실행
sudo echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

GitLab 패키지 설치

GitLab은 리눅스 패키지 형태로 배포되고 있으며, Omnibus 패키지라고 표현합니다. Omnibus 패키지 내부에는 DB를 포함하여 다양한 GitLab 구성 모듈들이 포함되어 있습니다. Omnibus 패키지 설치만으로 의존성을 포함한 다양한 모듈들이 자동으로 구성되기 때문에 간단하게 GitLab을 설치할 수가 있습니다. 물론 설치 후 각 모듈들을 개별 장비로 분리하여 성능을 향상시키는 것도 가능합니다.

우선 GitLab 설치를 위해 필요한 사전 작업을 진행합니다. 다음 명령들을 수행합니다. Amazone Linux 2에서는 실제 첫번째 명령만 실행하면 됩니다.

# opnessh는 기본 설치되어 있기 때문에, 실제는 policycoreutils-python 설치만 필요
$ sudo yum install -y curl policycoreutils-python openssh-server openssh-clients perl

# ssh는 기본 구성되어 있기 때문에 아래 내용 skip
$ sudo systemctl enable sshd
$ sudo systemctl start sshd

# firewalld는 기본으로 구성되지 않은 상태이기에 아래 내용 skip
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
$ sudo systemctl reload firewalld

# postfix가 기본 설치되어 있기 때문에 skip
$ sudo yum install postfix
$ sudo systemctl enable postfix
$ sudo systemctl start postfix

다음으로 GitLab 패키지 저장소를 추가 합니다.

curl <https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh> | sudo bash

이제 GitLab 패키지 설치 명령을 실행합니다.

#최신 버전 설치
sudo EXTERNAL_URL="https://도메인" yum install -y gitlab-ee

#특정 버전 설치
sudo EXTERNAL_URL="https://도메인" yum install -y gitlab-ee-16.4.2

위 명령에서 도메인은 실제 GitLab이 설치되는 서버에 연결된 도메인 이어야 합니다. 도메인이 https 인 경우 자동으로 Let’s encrypt SSL 인증서 설치를 진행합니다. 만약 Let’s encrypt 를 사용하지 않는다면 http 로 도메인을 지정합니다. 도메인이 없는 경우 ip를 입력합니다. 구매한 SSL 인증서가 있다면 http 로 설치한 후 설정을 변경하여 인증서를 적용합니다.

설치가 완료되면, 설정한 URL로 GItLab 로그인 페이지에 접속할 수 있습니다. 초기 관리자 ID는 root 이며, 패스워드는 /etc/gitlab/initial_root_password 에 기록되어 있습니다. 초기 패스워드는 24시간 동안만 유효하기 때문에 즉시, root 유저로 로그인하여 패스워드를 변경합니다. 보안을 위해 유저명도 가급적이면 다른 이름으로 변경하는 것을 권장합니다.

GitLab 시작과 중지

GitLab 서비스를 정지 하거나, 시작하기 위해서는 gitlab-ctl 명령을 사용합니다.
다음과 같이 명령을 실행합니다.

$ sudo gitlab-ctl stop
$ sudo gitlab-ctl start

위와 같이 GitLab 설치 후 바로 사용이 가능하지만, 요구 사항에 따라 GitLab 의 설정 변경이 필요할 수 있습니다. 다음 시간에는 GitLab의 설정 변경 방법에 대해 알아 보도록 하겠습니다.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top