태그 보관물: gitlab

GitLab CE install

개요

GitLab CE(Community Edition)는 자가 관리형(self-hosted) 오픈소스 Git 저장소 및 DevOps 플랫폼입니다. GitHub Actions와 유사한 CI/CD 파이프라인(GitLab CI)을 포함하며, 이슈 트래킹, MR(Merge Request), Container Registry, Wiki까지 하나의 서버에서 운영할 수 있습니다.

인터넷 연결이 제한된 내부망 환경이나 코드를 외부에 두기 어려운 보안 요건이 있는 조직에서 GitHub.com 대신 사용하는 사례가 많습니다. 이 글에서는 Ubuntu 22.04 환경에 GitLab CE 17.6.2를 Omnibus 패키지로 설치하는 전체 절차를 정리합니다.

권장 사양: CPU 4코어 이상, RAM 8GB 이상, 디스크 50GB 이상. Omnibus 패키지는 PostgreSQL, Redis, Nginx, Prometheus 등 GitLab의 모든 컴포넌트를 포함하므로 최소 3.7GB의 패키지 다운로드와 디스크 공간이 필요합니다.

OS: Ubuntu 22.04.3 LTS | GitLab: CE 17.6.2

OS 업데이트 및 의존성 패키지 설치

GitLab 설치 전 OS 패키지를 최신 상태로 업데이트하고, GitLab 설치 스크립트에 필요한 의존성 패키지를 설치합니다. ca-certificatescurl은 GitLab 패키지 저장소를 HTTPS로 추가할 때 필요하고, tzdata는 GitLab 내부의 시간대 처리에 사용됩니다.

<admin-user>@<server>:~$ sudo apt-get update
<admin-user>@<server>:~$ sudo apt-get install -y curl openssh-server ca-certificates tzdata perl

sendmail 설치 (선택)

GitLab은 계정 인증, 비밀번호 재설정, 알림 등을 이메일로 발송합니다. 자체 메일 서버(Postfix)를 설치하거나, 나중에 /etc/gitlab/gitlab.rb에서 외부 SMTP 서버(Gmail, AWS SES 등)를 설정하는 방법 중 선택할 수 있습니다. 내부망 환경에서 별도 SMTP 서버가 있다면 이 단계를 건너뛰어도 됩니다.

<admin-user>@<server>:~$ sudo apt-get install -y postfix

GitLab 저장소 추가 및 패키지 설치

GitLab에서 제공하는 공식 설치 스크립트로 apt 저장소를 등록한 뒤 패키지를 설치합니다. EXTERNAL_URL 환경변수는 GitLab이 외부에서 접근되는 URL입니다. 이 값은 설치 후 /etc/gitlab/gitlab.rbexternal_url 항목에 저장되며 CI/CD 파이프라인의 클론 URL, 이메일 링크 등에 전반적으로 사용됩니다. 도메인이 없다면 http://서버IP:포트 형식으로 지정합니다.

패키지 크기가 약 1.3GB이므로 다운로드에 수 분이 소요됩니다. 설치 중 Omnibus Chef 레시피가 실행되면서 PostgreSQL 초기화, Nginx 설정, 서비스 기동까지 자동으로 처리됩니다.

<admin-user>@<server>:~$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
<admin-user>@<server>:~$ sudo EXTERNAL_URL="http://x.x.x.x:8081" apt-get install gitlab-ce

gitlab.rb 수정 및 서비스 재기동

설치 후 /etc/gitlab/gitlab.rb는 GitLab의 모든 설정을 관리하는 중앙 설정 파일입니다. external_url 외에도 SMTP 설정, LDAP 연동, 백업 경로, 이메일 발신자 등 수백 가지 옵션을 이 파일 하나에서 제어합니다. 변경 사항을 적용하려면 반드시 gitlab-ctl reconfigure를 실행해야 하며, 이 과정에서 Chef 레시피가 재실행되어 변경된 설정이 각 서비스 설정 파일에 반영됩니다.

vi /etc/gitlab/gitlab.rb
# external_url 항목 수정
external_url 'http://x.x.x.x:8081'

<admin-user>@<server>:~$ sudo gitlab-ctl reconfigure

초기 root 비밀번호 확인

설치 직후 GitLab은 임시 root 비밀번호를 /etc/gitlab/initial_root_password 파일에 저장합니다. 이 파일은 설치 후 24시간이 지나면 자동으로 삭제됩니다. 초기 로그인 후 즉시 Admin > Edit profile > Password에서 비밀번호를 변경하고, 변경 후에는 이 파일을 수동으로 삭제해도 됩니다.

sudo cat /etc/gitlab/initial_root_password

브라우저 접근 확인 및 초기 비밀번호 변경

브라우저에서 http://x.x.x.x:8081로 접속하여 GitLab 로그인 페이지가 표시되면 설치가 완료된 것입니다. root 계정으로 로그인 후 다음 순서로 초기 설정을 진행합니다.

  1. Admin > Edit profile > Password에서 초기 비밀번호 변경
  2. Admin Area > Settings > General에서 Sign-up 제한(내부망이면 비활성화 권장)
  3. 첫 번째 프로젝트(저장소) 생성 확인
GitLab CE 설치 완료 후 웹 브라우저 초기 접속 화면

참고

참고 문서: GitLab 패키지 설치 공식 문서 · GitLab Runner Docker 설치 문서