セルフコンパイルインストールをLinuxパッケージに変換する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
セルフコンパイルインストール方式でGitLabをインストールした場合、インスタンスをLinuxパッケージのインスタンスに変換できます。
セルフコンパイルインストールを変換する場合:
- GitLabのまったく同じバージョンに変換する必要があります。
/etc/gitlab/gitlab.rbで設定を構成する必要があります。これは、gitlab.yml、puma.rb、smtp_settings.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に関連するシークレットを復元します。
db_key_base、secret_key_base、otp_key_base、encrypted_settings_key_base、openid_connect_signing_key、およびactive_record_encryptionの値を、/home/git/gitlab/config/secrets.yml(セルフコンパイルインストール)から/etc/gitlab/gitlab-secrets.json(Linuxパッケージ)の同等のキーにコピーします。/home/git/gitlab-shell/.gitlab_shell_secret(セルフコンパイルインストール)の内容をsecret_tokenの/etc/gitlab/gitlab-secrets.json(Linuxパッケージ)にコピーします。次のような内容になります:{ "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アクセスが可能になります。
GitLabWebインターフェースにログインできる場合は、サーバーを再起動して、古いサービスがLinuxパッケージのインストールを妨げないようにしてください。
LDAPなどの特別な機能を使用している場合は、
gitlab.rbに設定を入力する必要があります。詳細については、設定に関するドキュメントを参照してください。