- GitLab とシステム情報の収集
- GitLabのライセンス情報を表示します。
- GitLab 設定の確認
- authorized_keysファイルの再構築
- Redisキャッシュのクリア
- アセットのプリコンパイル
- リモートサイトへのTCP接続の確認
- 明確な専用リース(DANGER)
- データベース移行のステータスを表示
- 不完全なデータベース移行の実行
- 一般的なメトリクスのインポート
メンテナンス・レーキ作業
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:check
にSANITIZE=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
、共有リソースでの同時オペレーションを防ぐことができます。例としては、リポジトリの定期的なガベージコレクションの実行が挙げられます。
非常に特殊な状況では、排他リースによってロックされたオペレーションが、ロックを解放せずに失敗することがあります。 期限切れを待てない場合は、このタスクを実行して手動でクリアすることができます。
すべての専用リースをクリアすること:
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
またはdown
のStatus
を持つテーブルを出力します。
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