GitLabを再起動する方法

GitLabのインストール方法によって、サービスを再起動する方法が異なります。

note
どの方法でも短いダウンタイムが予想されます。

Linux パッケージのインストール

Linux パッケージを使ってGitLab をインストールした場合は、PATHgitlab-ctl が既にあるはずです。

gitlab-ctl はLinuxパッケージのインストールと相互作用し、GitLab Railsアプリケーション(Puma)だけでなく、他のコンポーネントも再起動させることができます:

  • GitLab Workhorse
  • Sidekiq
  • PostgreSQL (バンドルされているものを使用している場合)
  • NGINX (バンドルされているものを使用している場合)
  • Redis (バンドルされているものを使用している場合)
  • メールルーム
  • 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の再設定は、GitLabの設定(/etc/gitlab/gitlab.rb)が変更された場合に行う必要があります。

gitlab-ctl reconfigure を実行すると、Linuxのパッケージインストールを強力にする内部設定管理アプリケーションであるChefがいくつかのチェックを実行します。Chefはディレクトリ、権限、サービスが適切に配置され、動作していることを確認します。

Chefはまた、GitLabコンポーネントの設定ファイルが変更された場合、GitLabコンポーネントを再起動します。

Chefが管理している/var/opt/gitlab のファイルを手動で編集した場合、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アプリケーション全体を再起動するコマンドはありません。通常は、特定のコンポーネント(たとえば、gitalypumaworkhorsegitlab-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