非OmnibusインストールからOmnibusインストールへのアップグレード

Omnibus以外のインストールからのアップグレードはGitLab.comではテストしていません。

gitlab.ymlpuma.rbsmtp_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に変換して組み込みサーバを使用するには、以下の手順に従ってください: