[GIT] Ubuntu 22.04 - Gitlab-ee 설치 및 셋팅
Ubuntu 22.04 버전 Gitlab-ee 버전 설치입니다.
기존 Gitlab-ce 만 무료 버전으로 알고 계시는 사람들이 계시던데
ee 버전도 무료로 이용 가능합니다. 평가판 기간이 만료되면 자동으로 무료 기능으로 사용 가능하다는 사실!!
ce 버전은 추후에 유료 버전으로 업그레이드가 필요할 경우 ee버전으로 마이그레이션 후 몇 가지 작업이 필요한데
ee버전으로 설치 시에는 나중에 필요에 따라 유료 버전으로 바꾸고 싶을 때 인스턴스를 새로 구성하지 않고
유료 기능으로 활성화할 수 있다는 장점이 있기에 Gitlab-ee버전으로 설치했습니다.
공식 홈페이지에서 설명하는 gitlab 권장사양
CPU : 4 코어 이상 (4 코어 기준 최대 500명 사용자 가능)
Memory : 4GB 이상 (4GB 기준 최대 500명 사용자 가능)
DISK : 2.5GB 이상
Memory가 충분하더라도 최소 2GB 이상의 스왑 메모리를 확보하도록 권장하고 있습니다.
** 저는 CPU 2 코어 Memery 4GB 스왑 8GB 인 서버에 설치를 진행하였습니다. **
#1. 시스템 패키지 업데이트
sudo apt update
#2. 필요 종속성 패키지 설치
sudo apt install tzdata curl ca-certificates openssh-server
#3. Gitlab 패키지 저장소 추가
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
#4. 설치
sudo apt install gitlab-ee EXTERNAL_URL="https://gitlab.example.com"
EXTERNAL_URL 은 입력하지 않아도 됩니다. 설치 후에 설정 파일에서 변경 가능
#5. 설정 파일 재구성
/etc/gitlab/gitlab.rb 파일에 접속할 URL 설정
## vi /etc/gitlab/gitlab.rb
external_url = "접속할 도메인:포트번호"
변경 후에 터미널에서 아래 명령어 실행
gitlab-ctl reconfigure
GitLab 인스턴스를 관리하는 동안 설정 파일을 바꾸고 입력해야 하는 명령 중 하나는 gitlab-ctl reconfigure.
간단히 말해서 이 명령은 구성 파일을 구문 분석하고 제공된 값으로 재구성을 한다는 명령어이다.
위에서 입력한 url로 접속 시 기본 패스워드는
/etc/gitlab/initial_root_password 여기에서 확인 가능하다.
root와 해당 비밀번호 입력 후 접속하여 비밀번호 변경해주면 gitlab Install 은 끝!
#6. 제한된 서버에 Gitlab을 설치해야 할 경우
만약 서버 성능이 낮은 곳에 gitlab을 설치해야 할 경우 (메모리 2 GIB)
스왑 메모리 1GB 구성 후 스왑 공간을 사용하는 빈도를 값을 설정해주시면 좋습니다.
# 재부팅 시 초기화
sudo sysctl vm.swappiness=10
# 영구 적용할 시
vi /etc/sysctl.conf
vm.swappiness=10
값이 낮을수록 익명 메모리 페이지를 해제하고 이를 스왑에 쓰는 Linux의 기본 설정이 줄어들지만 파일 지원 페이지에서도 동일한 작업을 수행하려는 기본 설정이 높아집니다.
이후 /etc/gitlab/gitlab.rb 설정 파일 맨 아래에 해당 값 추가
## vi /etc/gitlab/gitlab.rb
## 푸마 클러스터모드 비활성화 단일 프로세서 동작
puma['worker_processes'] = 0
## 백그라운드 처리 데몬 동시성 모드 동작 값
sidekiq['max_concurrency'] = 10
## 모니터링 비활성화
prometheus_monitoring['enable'] = false
## Rails 의 메모리 할당자를 jemalloc으로 구성
gitlab_rails['env'] = {
'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000'
}
gitaly['env'] = {
'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000',
'GITALY_COMMAND_SPAWN_MAX_PARALLEL' => '2'
}
## Gitaly에서 시행하는 최대 동시성 및 메모리 제한
gitaly['cgroups_count'] = 2
gitaly['cgroups_mountpoint'] = '/sys/fs/cgroup'
gitaly['cgroups_hierarchy_root'] = 'gitaly'
gitaly['cgroups_memory_enabled'] = true
gitaly['cgroups_memory_bytes'] = 500000
gitaly['cgroups_cpu_enabled'] = true
gitaly['cgroups_cpu_shares'] = 512
gitaly['concurrency'] = [
{
'rpc' => "/gitaly.SmartHTTPService/PostReceivePack",
'max_per_repo' => 3
}, {
'rpc' => "/gitaly.SSHService/SSHUploadPack",
'max_per_repo' => 3
}
]
TIP) 알아두면 좋은 명령어
sudo gitlab-ctl start - 서버 시작
sudo gitlab-ctl stop - 서버 중지
sudo gitlab-ctl restart - 서버 재시작
sudo gitlab-ctl status - 서버 상태 확인
sudo gitlab-ctl deploy-page up - gitlab block
sudo gitlab-ctl deploy-page down - gitlab block 해제
sudo gitlab-ctl deploy-page status - gitlab block 상태 확인
sudo gitlab-ctl tail - 실시간 로그 확인
sudo gitlab-ctl tail [서비스명] - 해당 서비스에 대한 실시간 로그 확인 (status로 확인한 서비스들)
sudo gitlab-rake gitlab:env:info - gitlab system 정보 확인