GitLab 재시작 방법

Tier: Free, Premium, Ultimate Offering: Self-Managed

GitLab을 설치한 방법에 따라 서비스를 다시 시작하는 방법이 다릅니다.

note
모든 방법에서 짧은 다운타임이 예상됩니다.

리눅스 패키지 설치

GitLab을 설치할 때 리눅스 패키지를 사용했다면, 이미 gitlab-ctlPATH에 있어야 합니다.

gitlab-ctl은 리눅스 패키지 설치와 상호 작용하며 GitLab Rails 애플리케이션 (Puma) 및 다른 컴포넌트를 다시 시작하는 데 사용할 수 있습니다. 예를 들면:

  • GitLab Workhorse
  • Sidekiq
  • PostgreSQL (묶여진 것을 사용 중인 경우)
  • NGINX (묶여진 것을 사용 중인 경우)
  • Redis (묶여진 것을 사용 중인 경우)
  • Mailroom
  • Logrotate

리눅스 패키지 설치 다시 시작

때로는 문서에서 GitLab을 다시 시작 하라는 지시가 있을 수 있습니다. 리눅스 패키지 설치를 다시 시작하려면 다음을 실행합니다:

sudo gitlab-ctl restart

출력은 다음과 유사해야 합니다:

ok: run: gitlab-workhorse: (pid 11291) 1s
ok: run: logrotate: (pid 11299) 0s
ok: run: mailroom: (pid 11306) 0s
ok: run: nginx: (pid 11309) 0s
ok: run: postgresql: (pid 11316) 1s
ok: run: redis: (pid 11325) 0s
ok: run: sidekiq: (pid 11331) 1s
ok: run: puma: (pid 11338) 0s

컴포넌트를 개별적으로 다시 시작하려면 restart 명령에 서비스 이름을 추가할 수 있습니다. 예를 들어 NGINX만 다시 시작하려면 다음을 실행합니다:

sudo gitlab-ctl restart nginx

GitLab 서비스의 상태를 확인하려면 다음을 실행합니다:

sudo gitlab-ctl status

모든 서비스가 ok: run이라고 표시되어야 합니다.

때로는 컴포넌트가 다시 시작할 때 타임아웃(로그에서 timeout 찾기)되기도 하고 멈출 수 있습니다. 이 경우에는 gitlab-ctl kill <service>를 사용하여 SIGKILL 신호를 서비스(예: sidekiq)에 보낼 수 있습니다. 이후에 다시 시작이 정상적으로 수행되어야 합니다.

기마지런, GitLab을 다시 구성할 수 있습니다.

리눅스 패키지 설치 다시 구성

문서에서 GitLab을 다시 구성 하라는 지시가 있을 수 있습니다. 이 메서드는 리눅스 패키지 설치에만 해당됨을 기억하세요.

리눅스 패키지 설치를 다시 구성하려면 다음을 실행합니다:

sudo gitlab-ctl reconfigure

GitLab을 다시 구성해야 하는 이유는 구성(/etc/gitlab/gitlab.rb)에 변경이 있는 경우입니다.

gitlab-ctl reconfigure를 실행하면, 리눅스 패키지 설치를 실행하는 기초 구성 관리 애플리케이션인 Chef가 몇 가지 확인을 실행합니다. Chef는 디렉터리, 권한 및 서비스가 제대로 설정되어 있는지 확인합니다.

Chef는 또한 구성 파일이 변경된 경우 GitLab 컴포넌트를 다시 시작합니다.

Chef가 관리하는 /var/opt/gitlab의 파일을 매뉴얼으로 편집하면, reconfigure를 실행하면 변경 사항이 되돌아가고 해당 파일에 의존하는 서비스가 다시 시작됩니다.

자체 컴파일된 설치

공식 설치 가이드를 따라 자체 컴파일 설치를 한 경우, GitLab을 다시 시작하려면 다음 명령을 실행합니다:

# systemd를 실행 중인 시스템의 경우
sudo systemctl restart gitlab.target

# SysV init를 실행 중인 시스템의 경우
sudo service gitlab restart

이렇게 하면 Puma, Sidekiq, GitLab Workhorse 및 Mailroom (활성화된 경우)을 다시 시작합니다.

Helm 차트 설치

클라우드 네이티브 Helm 차트를 통해 설치된 전체 GitLab 애플리케이션을 다시 시작하는 단일 명령은 없습니다. 일반적으로 특정 컴포넌트를 개별적으로 다시 시작(예: gitaly, puma, workhorse, gitlab-shell)하는 것이 충분합니다. 이를 위해 해당하는 모든 포드를 삭제합니다:

kubectl delete pods -l release=<helm 릴리스 이름>,app=<컴포넌트 이름>

릴리스 이름은 helm list 명령의 출력에서 얻을 수 있습니다.

Docker 설치

Docker 설치 구성을 변경했을 경우, 해당 변경 사항이 적용되려면 다음을 다시 시작해야 합니다:

  • gitlab 컨테이너.
  • 별도의 컴포넌트 컨테이너.

예를 들어, 별도의 컨테이너에 Sidekiq를 배포했다면, 컨테이너를 다시 시작하려면 다음을 실행합니다:

sudo docker restart gitlab
sudo docker restart sidekiq