メンテナンス・レーキ作業

GitLabは一般的なメンテナンスのためにRakeタスクを提供しています。

GitLab とシステム情報の収集

このコマンドは、GitLab のインストールとそのシステムに関する情報を収集します。 これらの情報は、ヘルプを求めたり問題をレポーターしたりするときに役に立ちます。

オムニバス・インストール

sudo gitlab-rake gitlab:env:info

ソースインストール

bundle exec rake gitlab:env:info RAILS_ENV=production

出力例:

System information
System:           Debian 7.8
Current User:     git
Using RVM:        no
Ruby Version:     2.1.5p273
Gem Version:      2.4.3
Bundler Version:  1.7.6
Rake Version:     10.3.2
Redis Version:    3.2.5
Sidekiq Version:  2.17.8

GitLab information
Version:          7.7.1
Revision:         41ab9e1
Directory:        /home/git/gitlab
DB Adapter:       postgresql
URL:              https://gitlab.example.com
HTTP Clone URL:   https://gitlab.example.com/some-project.git
SSH Clone URL:    git@gitlab.example.com:some-project.git
Using LDAP:       no
Using Omniauth:   no

GitLab Shell
Version:          2.4.1
Repositories:     /home/git/repositories/
Hooks:            /home/git/gitlab-shell/hooks/
Git:              /usr/bin/git

GitLabのライセンス情報を表示します。

GitLab Starter 12.6 で導入されました

このコマンドは、GitLabのライセンスと使用されているシート数に関する情報を表示します。 GitLab Enterpriseインストールでのみ利用可能です:GitLab Community Editionにライセンスをインストールすることはできません。

これらは、サポートにチケットを発行する際や、プログラムでライセンスパラメータをチェックする際に役立ちます。

オムニバス・インストール

sudo gitlab-rake gitlab:license:info

ソースインストール

bundle exec rake gitlab:license:info RAILS_ENV=production

出力例:

Today's Date: 2020-02-29
Current User Count: 30
Max Historical Count: 30
Max Users in License: 40
License valid from: 2019-11-29 to 2020-11-28
Email associated with license: user@example.com

GitLab 設定の確認

gitlab:check Rakeタスクは以下のRakeタスクを実行します:

  • gitlab:gitlab_shell:check
  • gitlab:gitaly:check
  • gitlab:sidekiq:check
  • gitlab:app:check

このコマンドは、各コンポーネントがインストールガイドに従ってセットアップされているかをチェックし、見つかったイシューの修正を提案します。 このコマンドはアプリケーションサーバーから実行する必要があり、Gitalyのようなコンポーネントサーバーでは正しく動作しません。

また、以下のトラブルシューティングガイドもご覧ください:

gitlab:checkを実行します:

オムニバス・インストール

sudo gitlab-rake gitlab:check

ソースインストール

bundle exec rake gitlab:check RAILS_ENV=production
注:出力からプロジェクト名を省きたい場合は、gitlab:checkSANITIZE=true を使用してください。

出力例:

Checking Environment ...

Git configured for git user? ... yes
Has python2? ... yes
python2 is supported version? ... yes

Checking Environment ... Finished

Checking GitLab Shell ...

GitLab Shell version? ... OK (1.2.0)
Repo base directory exists? ... yes
Repo base directory is a symlink? ... no
Repo base owned by git:git? ... yes
Repo base access is drwxrws---? ... yes
post-receive hook up-to-date? ... yes
post-receive hooks in repos are links: ... yes

Checking GitLab Shell ... Finished

Checking Sidekiq ...

Running? ... yes

Checking Sidekiq ... Finished

Checking GitLab ...

Database config exists? ... yes
Database is SQLite ... no
All migrations up? ... yes
GitLab config exists? ... yes
GitLab config outdated? ... no
Log directory writable? ... yes
Tmp directory writable? ... yes
Init script exists? ... yes
Init script up-to-date? ... yes
Redis version >= 2.0.0? ... yes

Checking GitLab ... Finished

authorized_keysファイルの再構築

場合によっては、authorized_keys ファイルを再構築する必要があります。 これを行うには、以下を実行してください:

オムニバス・インストール

sudo gitlab-rake gitlab:shell:setup

ソースインストール

cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:shell:setup RAILS_ENV=production

出力例:

This will rebuild an authorized_keys file.
You will lose any data stored in authorized_keys file.
Do you want to continue (yes/no)? yes

Redisキャッシュのクリア

何らかの理由でダッシュボードに間違った情報が表示される場合は、Redisのキャッシュをクリアするとよいでしょう。 これを行うには、以下を実行します:

オムニバス・インストール

sudo gitlab-rake cache:clear

ソースインストール

cd /home/git/gitlab
sudo -u git -H bundle exec rake cache:clear RAILS_ENV=production

アセットのプリコンパイル

バージョンアップの際、CSSがおかしくなったり、アイコンが足りなくなったりすることがあります。 そのような場合は、もう一度アセットをプリコンパイルしてみてください。

これはソースインストールにのみ適用され、Omnibus パッケージには適用されません。

ソースインストール

cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:assets:compile RAILS_ENV=production

オムニバス版では、最適化されていないアセット(JavaScript、CSS)は上流のGitLabのリリース時に凍結されます。 オムニバス版には、これらのアセットの最適化されたバージョンが含まれています。 パッケージをインストールした後に本番マシンでJavaScript / CSSコードを修正しない限り、本番マシンでrake gitlab:assets:compile 。アセットが破損したと思われる場合は、オムニバスパッケージを再インストールしてください。

リモートサイトへのTCP接続の確認

GitLabのインストールが別のマシンのTCPサービス(PostgreSQLやHTTPSサーバーなど)に接続できるかどうかを知りたいことがあります。 これを手助けするRakeタスクが含まれています:

オムニバス・インストール

sudo gitlab-rake gitlab:tcp_check[example.com,80]

ソースインストール

cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:tcp_check[example.com,80] RAILS_ENV=production

明確な専用リース(DANGER)

GitLabは共有ロックの仕組みを使っています。ExclusiveLease 、共有リソースでの同時オペレーションを防ぐことができます。例としては、リポジトリの定期的なガベージコレクションの実行が挙げられます。

非常に特殊な状況では、排他リースによってロックされたオペレーションが、ロックを解放せずに失敗することがあります。 期限切れを待てない場合は、このタスクを実行して手動でクリアすることができます。

すべての専用リースをクリアすること:

危険:GitLabやSidekiqの実行中に実行しないでください。
sudo gitlab-rake gitlab:exclusive_lease:clear

リースtype またはリースtype + idを指定するには、スコープを指定します:

# to clear all leases for repository garbage collection:
sudo gitlab-rake gitlab:exclusive_lease:clear[project_housekeeping:*]

# to clear a lease for repository garbage collection in a specific project: (id=4)
sudo gitlab-rake gitlab:exclusive_lease:clear[project_housekeeping:4]

データベース移行のステータスを表示

GitLabをアップグレードする際に移行が完了したかどうかを確認する方法については、アップグレードのドキュメントを参照してください。

特定のマイグレーションのステータスをチェックするには、以下のRakeタスクを使うことができます:

sudo gitlab-rake db:migrate:status

これは、各マイグレーションIDについて、up またはdownStatus を持つテーブルを出力します。

database: gitlabhq_production

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     migration_id    migration_name

不完全なデータベース移行の実行

データベースの移行が不完全な状態で立ち往生することがあります。 つまり、sudo gitlab-rake db:migrate:status コマンドの出力にdownステータスが表示されます。

これらのマイグレーションを完了するには、以下のRakeタスクを使用します:

sudo gitlab-rake db:migrate

コマンドが完了したら、sudo gitlab-rake db:migrate:status を実行して、すべての移行が完了したかどうか(up ステータスがあるかどうか)を確認します。

一般的なメトリクスのインポート

メトリクス・ダッシュボードを駆動する一般的なメトリクスの再インポートが必要になる場合があります。

これは、既存のメトリクスを更新した結果かもしれませんし、トラブルシューティングとしてかもしれません。

メトリクスを再インポートするには、以下を実行します:

sudo gitlab-rake metrics:setup_common_metrics