GitLab 재시작 방법

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

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

note
모든 방법에 대해 잠시 다운타임이 예상됩니다.

Linux 패키지 설치

GitLab을 설치하기 위해 Linux 패키지를 사용한 경우 gitlab-ctl이 이미 PATH에 포함되어 있어야 합니다.

gitlab-ctl은 Linux 패키지 설치에 상호 작용하며 다음과 같은 다른 컴포넌트를 다시 시작할 수 있습니다.

  • GitLab Workhorse
  • Sidekiq
  • PostgreSQL (번들된 것을 사용하는 경우)
  • NGINX (번들된 것을 사용하는 경우)
  • Redis (번들된 것을 사용하는 경우)
  • Mailroom
  • Logrotate

Linux 패키지 설치 재시작

문서에서 GitLab을 다시 시작 하라는 지침이 있는 경우 다음 명령을 실행하여 Linux 패키지 설치를 다시 시작합니다.

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>를 사용하여 예를 들어 sidekiqSIGKILL 신호를 보낼 수 있습니다. 그 후에 다시 시작이 잘 되어야 합니다.

마지막 수단으로 GitLab을 다시 구성해 볼 수 있습니다.

Linux 패키지 설치 다시 구성

문서에서 GitLab을 재구성 하라는 요청이 있는 경우 이 방법은 Linux 패키지 설치에만 해당됨을 기억하세요.

Linux 패키지 설치를 다시 구성하려면 다음을 실행합니다.

sudo gitlab-ctl reconfigure

GitLab이 구성 파일(/etc/gitlab/gitlab.rb)에 변경 사항이 있을 경우 GitLab을 다시 구성해야 합니다.

gitlab-ctl reconfigure를 실행하면 Chef가 Linux 패키지 설치를 실행하는 기본 구성 관리 응용프로그램으로서 일부 점검을 실행합니다. Chef는 디렉터리, 권한 및 서비스가 제대로 되어 있는지 확인합니다.

Chef는 구성 파일이 변경되었을 경우 해당 파일에 종속된 서비스를 다시 시작합니다.

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). 이를 위해 해당 컴포넌트와 관련된 모든 pod을 삭제합니다.

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

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

Docker 설치

Docker 설치에서 구성을 변경한 경우 해당 변경 사항을 적용하려면 다음을 다시 시작해야 합니다.

  • gitlab 컨테이너
  • 개별 컴포넌트 컨테이너

예를 들어, 별도의 컨테이너에서 Sidekiq를 배포한 경우 다음을 실행하여 컨테이너를 다시 시작합니다.

sudo docker restart gitlab
sudo docker restart sidekiq