GitLab 재시작 방법

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

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

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

Linux 패키지 설치

Linux 패키지를 사용하여 GitLab을 설치했다면 gitlab-ctlPATH에 이미 있어야 합니다.

gitlab-ctl은 Linux 패키지 설치와 상호 작용하며 다음과 같은 다른 구성 요소, 즉 GitLab Rails 어플리케이션(Puma), 그리고 다음과 같은 구성요소들을 다시 시작할 수 있습니다.

  • 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>를 사용하여 해당 서비스에 SIGKILL 신호를 보낼 수 있습니다. 예를 들어, sidekiq을 보낼 경우입니다. 그 후 다시 시작이 제대로 수행되어야 합니다.

최후의 수단으로 GitLab을 다시 구성해 볼 수 있습니다.

Linux 패키지 설치 다시 구성

문서에서 GitLab을 다시 구성하라는 지시가 있는 경우, 이 명령은 Linux 패키지 설치에만 적용됨을 기억하세요.

Linux 패키지 설치를 다시 구성하려면 다음 명령을 실행하세요:

sudo gitlab-ctl reconfigure

GitLab을 다시 구성해야 하는 이벤트는 구성 (/etc/gitlab/gitlab.rb)에서 변경된 것이 있을 때입니다.

gitlab-ctl reconfigure를 실행하면 Chef가 일부 확인을 실행합니다. Chef는 Linux 패키지 설치를 지원하는 기본 구성 관리 어플리케이션으로 디렉터리, 권한 및 서비스가 제대로 작동하는지 확인합니다.

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 release name>,app=<component name>

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

도커 설치

도커 설치에서 구성을 변경한 경우 해당 변경 사항이 적용되려면 다음을 다시 시작해야합니다:

  • gitlab 컨테이너.
  • 별도의 구성요소 컨테이너.

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

sudo docker restart gitlab
sudo docker restart sidekiq