- バックアップを使用した非Omnibus PostgreSQLからOmnibusインストールへのアップグレード
- 非Omnibus PostgreSQLからインプレースでのOmnibusインストールへのアップグレード
- 非Omnibus MySQLからOmnibusインストール(バージョン6.8以上)へのアップグレード
非OmnibusインストールからOmnibusインストールへのアップグレード
Omnibus以外のインストールからのアップグレードはGitLab.comではテストしていません。
gitlab.yml
、puma.rb
、smtp_settings.rb
などのファイルの設定は失われますのでご注意ください。の設定は、/etc/gitlab/gitlab.rb
で行ってください。
バックアップを使用した非Omnibus PostgreSQLからOmnibusインストールへのアップグレード
Omnibus以外のインストールからバックアップを作成し、Omnibusのインストールでこれを復元することでアップグレードします。 このとき、GitLabのバージョンがまったく同じであることを確認しましょう(たとえば6.7.3)。 そのためには、バックアップを作成する前にOmnibus以外のインストールをアップグレードする必要があるかもしれません。
アップグレード後は、必ずチェックタスクを実行してください:
sudo gitlab-rake gitlab:check
No such file or directory @ realpath_rec - /home/git
のようなエラーが発生した場合は、このワンライナーを実行してGitフックのパスを修正してください:
find . -lname /home/git/gitlab-shell/hooks -exec sh -c 'ln -snf /opt/gitlab/embedded/service/gitlab-shell/hooks $0' {} \;
これはgitlab-shell
が/home/git
にあると仮定しています。
非Omnibus PostgreSQLからインプレースでのOmnibusインストールへのアップグレード
ソースのGitLabをそのままOmnibus GitLabにアップグレードすることも可能です。 以下では、UbuntuでPostgreSQLを使用していて、現在のGitLabのバージョンと一致するOmnibus GitLabパッケージがあることを想定しています。 また、ソースのGitLabインストールではデフォルトのパスとユーザをすべて使用しているものとします。
まず、GitLab、Redis、NGINXを停止して無効にします。
# Ubuntu
sudo service gitlab stop
sudo update-rc.d gitlab disable
sudo service nginx stop
sudo update-rc.d nginx disable
sudo service redis-server stop
sudo update-rc.d redis-server disable
サーバーで GitLab を管理するために設定管理システムを使用している場合は、そこで GitLab とその関連サービスを無効にすることも忘れないようにしましょう。 また、以下の手順では Git ユーザー (/home/git
) の既存のホームディレクトリが/var/opt/gitlab
に変更されることに注意しましょう。
次に、新しいセットアップ用のgitlab.rb
ファイルを作成します:
sudo mkdir /etc/gitlab
sudo tee -a /etc/gitlab/gitlab.rb <<'EOF'
# Use your own GitLab URL here
external_url 'http://gitlab.example.com'
# We assume your repositories are in /home/git/repositories (default for source installs)
git_data_dirs({ 'default' => { 'path' => '/home/git' } })
# Re-use the PostgreSQL that is already running on your system
postgresql['enable'] = false
# This db_host setting is for Debian PostgreSQL packages
gitlab_rails['db_host'] = '/var/run/postgresql/'
gitlab_rails['db_port'] = 5432
# We assume you called the GitLab DB user 'git'
gitlab_rails['db_username'] = 'git'
EOF
次に、Omnibus GitLabパッケージをインストールして再設定します:
sudo gitlab-ctl reconfigure
まだ終わっていません!gitlab-ctl reconfigure
の実行によって git ユーザーのホーム・ディレクトリが変更されたため、OpenSSH は authorized_keys ファイルを見つけられなくなっています。 次のコマンドで鍵ファイルを再構築しましょう:
sudo gitlab-rake gitlab:shell:setup
これで、GitLab サーバーに HTTP と SSH でアクセスできるようになり、リポジトリやユーザーも以前の状態に戻りました。
GitLabのウェブインターフェイスにログインできたら、次はサーバーを再起動して、古いサービスがGitLabに干渉しないことを確認します。
LDAPのような特別な機能を使用する場合は、gitlab.rb
、設定のドキュメントを参照してください。
非Omnibus MySQLからOmnibusインストール(バージョン6.8以上)へのアップグレード
GitLab 12.1から、PostgreSQLのみがサポートするデータベース管理システムとなりました。 そのため、Omnibus以外のインストールで12.1より前のバージョンのGitLabが稼働していてMySQLを使っている場合は、12.1にアップグレードする前にPostgreSQLに移行する必要があります。
PostgreSQLに変換して組み込みサーバを使用するには、以下の手順に従ってください: