GitLab을 다시 시작하는 방법

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

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

참고: 모든 방법에서 잠깐의 다운타임이 예상됩니다.

리눅스 패키지 설치

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는 구성 파일이 변경되었을 때 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=<헬름 릴리스 이름>,app=<구성 요소 이름>

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

도커 설치

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

  • 기본 gitlab 컨테이너
  • 별도의 구성 요소 컨테이너들

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

sudo docker restart gitlab
sudo docker restart sidekiq