GitLab 다시 시작하는 방법

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

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

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

리눅스 패키지 설치

리눅스 패키지를 사용하여 GitLab을 설치했다면, PATHgitlab-ctl이 이미 있어야 합니다.

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을 재구성해야 합니다.

gitlab-ctl reconfigure를 실행하면, 리눅스 패키지 설치를 지원하는 기본 구성 관리 애플리케이션인 Chef가 몇 가지 검사를 실행합니다.
Chef는 디렉터리, 권한 및 서비스가 제자리에 있고 작동하는지 확인합니다.

Chef는 구성 파일이 변경된 경우 GitLab 구성 요소를 다시 시작합니다.

/var/opt/gitlab에 있는 Chef가 관리하는 파일을 수동으로 편집하는 경우, reconfigure를 실행하면 변경 사항이 복원되고 이러한 파일에 의존하는 서비스가 다시 시작됩니다.

자체 컴파일 설치

공식 설치 가이드를 따라 자체 컴파일 설치를 완료했다면, 다음 명령어를 실행하여 GitLab을 재시작하세요:

# systemd가 실행되는 시스템의 경우
sudo systemctl restart gitlab.target

# SysV init이 실행되는 시스템의 경우
sudo service gitlab restart

이 명령어는 Puma, Sidekiq, GitLab Workhorse 및 Mailroom(사용이 활성화된 경우)을 재시작해야 합니다.

Helm 차트 설치

cloud-native Helm chart를 통해 설치된 GitLab 애플리케이션 전체를 재시작하는 단일 명령어는 없습니다. 일반적으로 특정 구성 요소를 별도로 재시작하는 것으로 충분합니다(예: gitaly, puma, workhorse 또는 gitlab-shell) 관련된 모든 파드를 삭제하여:

kubectl delete pods -l release=<helm release name>,app=<component name>

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

Docker 설치

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

  • 주요 gitlab 컨테이너.
  • 모든 개별 구성 요소 컨테이너.

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

sudo docker restart gitlab
sudo docker restart sidekiq