GitLabを再起動する方法
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
GitLabのインストール方法に応じて、サービスを再起動する方法が異なります。
どの方法でも、短いダウンタイムが発生する可能性があります。
Linuxパッケージインストール
Linuxパッケージを使用してGitLabをインストールした場合、すでにgitlab-ctlがPATHにあるはずです。
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 nginxGitLabサービスの状態を確認するには、次を実行します。
sudo gitlab-ctl statusすべてのサービスがok: runと表示されていることに注目してください。
再起動中にコンポーネントがタイムアウトすることがあります(ログ内のtimeoutを確認してください)。場合によっては処理が停止してしまうこともあります。そのような場合は、gitlab-ctl kill <service>を使用して、そのサービス(例: sidekiq)にSIGKILLシグナルを送信できます。その後は再起動が正常に行えるはずです。
どうしても再起動できない場合は、代わりにGitLabを再設定してみてください。
Linuxパッケージインストールを再設定する
ドキュメントの中で、GitLabの_再設定_を求められる場合があります。この方法は、Linuxパッケージインストールにのみ適用されることに注意してください。
Linuxパッケージインストールを再設定するには、次を実行します。
sudo gitlab-ctl reconfigure設定(/etc/gitlab/gitlab.rb)を変更した場合は、GitLabの再設定が必要になります。
gitlab-ctl reconfigureを実行すると、Linuxパッケージインストールの強化基盤となっている設定管理アプリケーションであるChefが、いくつかのチェックを実行します。Chefは、ディレクトリ、権限、サービスが適切に配置され、機能していることを確認します。
設定ファイルのいずれかを変更した場合、ChefはGitLabコンポーネントの再起動も行います。
/var/opt/gitlab内のChefによって管理されているファイルを手動で編集した場合、reconfigureを実行するとその変更が元に戻り、それらのファイルに依存するサービスが再起動されます。
自己コンパイルによるインストール
公式インストールガイドに従って自己コンパイルでインストールした場合は、次のコマンドを実行してGitLabを再起動します。
# For systems running systemd
sudo systemctl restart gitlab.target
# For systems running 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コマンドの出力から取得できます。
Dockerインストール
Dockerインストールで設定を変更した場合、その変更を有効にするには、次のコンテナを再起動する必要があります。
- メインの
gitlabコンテナ。 - 個別のコンポーネントコンテナ。
たとえば、Sidekiqを個別のコンテナにデプロイした場合、コンテナを再起動するには、次を実行します。
sudo docker restart gitlab
sudo docker restart sidekiq