IaC/CI CD Tool

1. GitLab이란? / 개념 및 설치

Somaz 2023. 4. 20. 19:19
728x90
반응형

Overview

오늘은 CI Tool 중 하나인 GitLab에 대해서 공부해보려고 한다.
 
다음시간에는 GitLab Runner에 대해 공부할 예정이다.
 


GitLab이란?

GitLab은 소프트웨어 개발 및 협업을 위한 올인원 솔루션을 제공하는 웹 기반 DevOps 플랫폼이다.
 
팀이 소프트웨어 프로젝트를 보다 효율적으로 계획, 생성, 구축, 테스트 및 배포하는 데 도움이 되는 다양한 도구와 기능을 제공한다. 
 
 

GitLab 주요기능

  • Git 리포지토리 관리
  • 이슈 추적 및 프로젝트 관리
  • CI(지속적인 통합) 및 CD(지속적인 배포)
  • 코드 검토
  • 보안 및 규정 준수
  • 타사 도구와의 통합

GitLab 설치(Ubuntu 18,20,22.04)

 


 

Step 1. 시스템 업데이트 & 패키지 설치

## Update System ##
sudo apt update
sudo apt upgrade -y

## Install package ##
sudo apt install -y ca-certificates curl openssh-server tzdata

 


 

Step 2. GitLab CE Repository 추가

## Install Package ##
sudo apt update
sudo apt install curl debian-archive-keyring lsb-release ca-certificates apt-transport-https software-properties-common -y

## run script.deb.sh ##
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

 


 

Step 3. Gitlab 설치 및 구성

## Install gitlab-ce ##
sudo apt update
sudo EXTERNAL_URL="https://gitlab.example.com/" apt-get install gitlab-ce

## Install gitlab-ce https cloud ##
sudo apt update
sudo EXTERNAL_URL="https://gitlab.example.com/" apt-get install gitlab-ce     # Replace with your Domain
echo "letsencrypt['enable'] = false" | sudo tee -a /etc/gitlab/gitlab.rb
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

## Install gitlab-ce https##
sudo apt update
sudo EXTERNAL_URL="https://gitlab.example.com/" apt-get install gitlab-ce     # Replace with your Domain

## Install gitlab-ce https cloud(aws,gcp... ##
sudo apt update
sudo EXTERNAL_URL="https://gitlab.example.com/" apt-get install gitlab-ce     # Replace with your Domain
sudo vi /etc/gitlab/gitlab.rb

letsencrypt['enable'] = true
external_url 'https://gitlab.example.com'  # Ensure your external URL is using HTTPS
letsencrypt['contact_emails'] = ['somaz@somaz.link'] # Use your email
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_day_of_month'] = "*/30"
letsencrypt['auto_renew_log_directory'] = '/var/log/gitlab/lets-encrypt'
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

## gitlab reconfigure ##
sudo gitlab-ctl reconfigure

## gitlab restart ##
sudo gitlab-ctl restart

## gitlab status ##
sudo gitlab-ctl status

## gitlab initial_root_passowrd ##
$ cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: kOtOjWp7v70OjkjtadnSJAhcDbCNo9nTNGVC5UoSCyE=

 


 

Step 4. GitLab Web 접속

출처 : gitlab 설치 참고 블로그

 
 

중요 디렉토리 설명

 

/var/opt/gitlab/gitlab-rails/shared/lfs-objects
  • 해당 디렉터리는 Git 대용량 파일 저장소(LFS) 개체를 저장하는 데 사용된다.
  • Git LFS는 사용자가 바이너리 자산과 같은 대용량 파일을 보다 효율적으로 버전화할 수 있도록 하는 Git용 extension이다.
  • 전체 대용량 파일을 Git 저장소에 저장하는 대신 LFS는 파일에 대한 포인터만 저장하는 반면 실제 파일은 서버(이 경우 lfs-objects 디렉토리)에 별도로 저장된다.
  • 이 설정은 Git 리포지토리의 크기를 줄이고 Git 작업의 성능을 향상시키는 데 도움이 됩니다.

 
 
 

/var/opt/gitlab/git-data
  • 해당 디렉토리는 GitLab 인스턴스에서 관리하는 실제 Git 리포지토리 및 기타 리포지토리 관련 데이터를 저장하는 데 사용된다.
  • GitLab 설치에서 각 프로젝트에는 프로젝트의 소스 코드, 버전 기록 및 기타 관련 데이터가 포함된 자체 Git 리포지토리가 있다.
  • /var/opt/gitlab/git-data 디렉토리는 이러한 모든 리포지토리와 관련 데이터를 저장하기 위한 루트 디렉토리 역할을 한다.

 
따라서 아래와 같이 mount해서 쓰면 좋다.

$ df-h
/dev/xvdb1                         2.0T  310G  1.6T  17% /var/opt/gitlab/gitlab-rails/shared/lfs-objects
/dev/xvdc1                         984G  273G  661G  30% /var/opt/gitlab/git-data

 


Reference

 
gitlab 설치 참고 블로그

728x90
반응형

'IaC > CI CD Tool' 카테고리의 다른 글

2. Github Action (With Syntax)  (0) 2023.05.22
1. Github Action이란?  (0) 2023.05.19
ArgoCD란?  (0) 2023.05.17
3. GitLab이란? / GitLab CI/CD  (0) 2023.04.24
2. GitLab이란? / GitLab Runner 개념 및 설치  (0) 2023.04.23