Self-hosted Gitlab 관리
상태점검
- 로그조회
sudo gitlab-ctl tail- 주요 로그파일 경로:
/var/log/gitlab/
- 서비스 상태 조회
sudo gitlab-ctl statussudo gitlab-rake gitlab:check SANITIZE=true
버전업
- 버전업 작업 시작전 반드시 데이터를 백업할것
- 일반적으로 단계적으로 버전을 올리는것이 좋음.
- 버전관리방식의 버전이
{major}.{minor}.{hotfix}라고 했을때 - hotfix 버전은 맘대로 업데이트 가능하지만
- major 또는 minor 버전을 올릴때는 동일 이전 버전에서 최신 hotfix 버전이어야 함
17.7.1 -> 17.8.1-> 불가17.7.1 -> 17.7.6 -> 17.8.1-> 가능17.7.6은17.7.x기준 최고 버전
- 버전관리방식의 버전이
Gitlab Runner 설정
- 서버에 gitlab-runner 를 별도 설치해야 함.
- 러너를 구동하는 서버는 반드시 gitlab 서비스가 구동중인 서버와 같은 필요가 없음
- Runner 를 등록하고 구동할때
sudo또는gitlab-runner유저를 사용해야함. - Runner 등록 시, executor 로 docker 를 사용하고 싶으면
- 서버에 docker 를 미리 설치해야함
- Docker를 사용하는 경우 Linux의 gitlab-runner 유저가 docker 그룹에 속해야 정상 실행 가능
sudo usermod -aG docker gitlab-runner sudo systemctl restart gitlab-runner
백업 및 복구
- 백업하는 Gitlab 의 버전과 복구하는 Gitlab 의 버전이 동일해야함.
백업 Tips
- 백업할 때 데이터 정합성을 유지하기 위해 GitLab을 중지
sudo gitlab-ctl stop
- 하지만 DB(PostgreSQL), Redis, Gitaly(Git 저장소 관리 서비스)는 유지
sudo gitlab-ctl start postgresql sudo gitlab-ctl start redis sudo gitlab-ctl start gitaly - 자체 백업기능 실행
sudo gitlab-backup create SKIP=uploads,builds,artifacts,lfs,registry,pages
- 기타 주요 파일 수동 백업
- 2FA, PAT, 인증정보 등까지 완전히 동일하게 백업하고 싶으면 반드시 해야함
sudo tar -czvf "$BACKUP_DIR/gitlab_config_backup.tar.gz" /etc/gitlab sudo tar -czvf "$BACKUP_DIR/gitlab_secrets_backup.tar.gz" /var/opt/gitlab/gitlab-rails/etc
- 2FA, PAT, 인증정보 등까지 완전히 동일하게 백업하고 싶으면 반드시 해야함
복구 Tips
- 복구시에도 마찬가지로 모든 서비스를 중지하되 DB(PostgreSQL), Redis, Gitaly(Git 저장소 관리 서비스)는 구동
- gitlab 설정파일에서 서비스 URL 설정 (
/etc/gitlab/gitlab.rb파일의external_url변경) - 복구 시 지정하는 백업파일은
- 반드시 백업폴더(
/var/opt/gitlab/backups)에 위치해 있어야 하며 - 파일명 뒤쪽에
_gitlab_backup.tar부분을 제외한 앞부분만 사용하면 됨 - (ex)
sudo gitlab-backup restore BACKUP=1739361192_2025_02_12_17.7.3
- 반드시 백업폴더(