自己コンパイルインストールをLinuxパッケージインストールに変換する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
自己コンパイルのインストール方法を使用してGitLabをインストールした場合、インスタンスをLinuxパッケージインスタンスに変換できます。
自己コンパイルインストールを変換する際:
- GitLabのまったく同じバージョンに変換する必要があります。
gitlab.yml、puma.rb、smtp_settings.rbなどのファイル内の設定は失われるため、/etc/gitlab/gitlab.rbで設定を構成する必要があります。
自己コンパイルされたインストールからのGitLabによる変換はテストされていません。
自己コンパイルインストールをLinuxパッケージインストールに変換するには:
現在の自己コンパイルインストールからバックアップを作成します:
cd /home/git/gitlab sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=productionバックアップファイルを新しいサーバーの
/var/opt/gitlab/backups/ディレクトリにコピーします。新しいインストールでバックアップを復元する(詳細な手順):
# This command will overwrite the contents of your GitLab database! sudo gitlab-backup restore BACKUP=<FILE_NAME>復元には、データベースとGitデータのサイズに応じて数分かかります。
Linuxパッケージインストールではすべての設定が
/etc/gitlab/gitlab.rbに保存されるため、新しいインストールを再構成する必要があります。個別の設定は、gitlab.yml、puma.rb、smtp_settings.rbなどの自己コンパイルされたインストールファイルから手動で移動する必要があります。利用可能なすべてのオプションについては、gitlab.rbテンプレートを参照してください。古い自己コンパイルインストールから新しいLinuxパッケージインストールにシークレットをコピーします:
Rails関連のシークレットを復元する。
/home/git/gitlab/config/secrets.yml(自己コンパイルされたインストール)から、db_key_base、secret_key_base、otp_key_base、encrypted_settings_key_base、openid_connect_signing_key、およびactive_record_encryptionの値を、/etc/gitlab/gitlab-secrets.json(Linuxパッケージインストール)内の同等のものにコピーします。/home/git/gitlab-shell/.gitlab_shell_secret(自己コンパイルされたインストール)の内容を、/etc/gitlab/gitlab-secrets.json(Linuxパッケージインストール)内のsecret_tokenにコピーします。次のようになります:{ "gitlab_workhorse": { "secret_token": "..." }, "gitlab_shell": { "secret_token": "..." }, "gitlab_rails": { "secret_key_base": "...", "db_key_base": "...", "otp_key_base": "...", "encrypted_settings_key_base": "...", "openid_connect_signing_key": "...", "active_record_encryption_primary_key": [ "..."], "active_record_encryption_deterministic_key": ["..."], "active_record_encryption_key_derivation_salt": "...", } ... }
変更を適用するためにGitLabを再構成します:
sudo gitlab-ctl reconfigure/home/git/gitlab-shell/.gitlab_shell_secretを移行した場合、Gitalyを再起動する必要があります:sudo gitlab-ctl restart gitaly
外部PostgreSQLからバックアップを使用したLinuxパッケージインストールへの変換
外部PostgreSQLインストールを、バックアップを使用してLinuxパッケージPostgreSQLインストールに変換できます。この操作を行う際には、同じGitLabバージョンを使用する必要があります。
外部PostgreSQLインストールをバックアップを使用してLinuxパッケージPostgreSQLインストールに変換するには:
checkタスクを実行します:sudo gitlab-rake gitlab:checkNo such file or directory @ realpath_rec - /home/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にあることを前提としています。
外部PostgreSQLからインプレースでのLinuxパッケージインストールへの変換
外部PostgreSQLインストールを、インプレースでLinuxパッケージPostgreSQLインストールに変換できます。
これらの手順は以下を前提としています:
- UbuntuでPostgreSQLを使用しています。
- 現在のGitLabバージョンに一致するLinuxパッケージがあります。
- 自己コンパイルインストールのGitLabは、すべてのデフォルトのパスとユーザーを使用しています。
- Gitユーザーの既存のホームディレクトリ(
/home/git)は/var/opt/gitlabに変更されます。
外部PostgreSQLインストールをインプレースでLinuxパッケージPostgreSQLインストールに変換するには:
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とその関連サービスを無効にします。
新しいセットアップ用に
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) and that Gitaly # listens on a socket at /home/git/gitlab/tmp/sockets/private/gitaly.socket gitaly['configuration'] = { storage: [ { name: 'default', path: '/home/git/repositories' } ] } gitlab_rails['repositories_storages'] = { default: { gitaly_address: '/home/git/gitlab/tmp/sockets/private/gitaly.socket' } } # 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次に、Linuxパッケージをインストールし、インストールを再構成します:
sudo gitlab-ctl reconfiguregitlab-ctl reconfigureの実行によりGitユーザーのホームディレクトリが変更され、OpenSSHがauthorized_keysファイルを見つけられなくなったため、キーファイルを再構築します:sudo gitlab-rake gitlab:shell:setupこれで、以前存在していたリポジトリとユーザーで、GitLabサーバーへのHTTPおよびSSHアクセスが可能になります。
GitLabウェブインターフェースにログインできる場合は、古いサービスがLinuxパッケージインストールに干渉しないように、サーバーを再起動します。
LDAPなどの特殊機能を使用している場合は、設定を
gitlab.rbに記述する必要があります。詳細については、設定ドキュメントを参照してください。