正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。
ドキュメントに関する現在のご利用体験についてお聞かせください。アンケートにご協力ください

自己コンパイルインストールをLinuxパッケージインストールに変換する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed

自己コンパイルのインストール方法を使用してGitLabをインストールした場合、インスタンスをLinuxパッケージインスタンスに変換できます。

自己コンパイルインストールを変換する際:

  • GitLabのまったく同じバージョンに変換する必要があります。
  • gitlab.ymlpuma.rbsmtp_settings.rbなどのファイル内の設定は失われるため、/etc/gitlab/gitlab.rbで設定を構成する必要があります。

自己コンパイルされたインストールからのGitLabによる変換はテストされていません。

自己コンパイルインストールをLinuxパッケージインストールに変換するには:

  1. 現在の自己コンパイルインストールからバックアップを作成します:

    cd /home/git/gitlab
    sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
  2. Linuxパッケージを使用してGitLabをインストールします。

  3. バックアップファイルを新しいサーバーの/var/opt/gitlab/backups/ディレクトリにコピーします。

  4. 新しいインストールでバックアップを復元する(詳細な手順):

    # This command will overwrite the contents of your GitLab database!
    sudo gitlab-backup restore BACKUP=<FILE_NAME>

    復元には、データベースとGitデータのサイズに応じて数分かかります。

  5. Linuxパッケージインストールではすべての設定が/etc/gitlab/gitlab.rbに保存されるため、新しいインストールを再構成する必要があります。個別の設定は、gitlab.ymlpuma.rbsmtp_settings.rbなどの自己コンパイルされたインストールファイルから手動で移動する必要があります。利用可能なすべてのオプションについては、gitlab.rbテンプレートを参照してください。

  6. 古い自己コンパイルインストールから新しいLinuxパッケージインストールにシークレットをコピーします:

    1. Rails関連のシークレットを復元する。/home/git/gitlab/config/secrets.yml(自己コンパイルされたインストール)から、db_key_basesecret_key_baseotp_key_baseencrypted_settings_key_baseopenid_connect_signing_key、およびactive_record_encryptionの値を、/etc/gitlab/gitlab-secrets.json(Linuxパッケージインストール)内の同等のものにコピーします。

    2. /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": "...",
        }
        ...
      }
  7. 変更を適用するためにGitLabを再構成します:

    sudo gitlab-ctl reconfigure
  8. /home/git/gitlab-shell/.gitlab_shell_secretを移行した場合、Gitalyを再起動する必要があります:

    sudo gitlab-ctl restart gitaly

外部PostgreSQLからバックアップを使用したLinuxパッケージインストールへの変換

外部PostgreSQLインストールを、バックアップを使用してLinuxパッケージPostgreSQLインストールに変換できます。この操作を行う際には、同じGitLabバージョンを使用する必要があります。

外部PostgreSQLインストールをバックアップを使用してLinuxパッケージPostgreSQLインストールに変換するには:

  1. 非Linuxパッケージインストールからバックアップを作成

  2. Linuxパッケージインストールでバックアップを復元する

  3. checkタスクを実行します:

    sudo gitlab-rake gitlab:check
  4. No 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インストールに変換するには:

  1. 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
  2. サーバーでGitLabを管理するために構成管理システムを使用している場合は、そこでGitLabとその関連サービスを無効にします。

  3. 新しいセットアップ用に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
  4. 次に、Linuxパッケージをインストールし、インストールを再構成します:

    sudo gitlab-ctl reconfigure
  5. gitlab-ctl reconfigureの実行によりGitユーザーのホームディレクトリが変更され、OpenSSHがauthorized_keysファイルを見つけられなくなったため、キーファイルを再構築します:

    sudo gitlab-rake gitlab:shell:setup

    これで、以前存在していたリポジトリとユーザーで、GitLabサーバーへのHTTPおよびSSHアクセスが可能になります。

  6. GitLabウェブインターフェースにログインできる場合は、古いサービスがLinuxパッケージインストールに干渉しないように、サーバーを再起動します。

  7. LDAPなどの特殊機能を使用している場合は、設定をgitlab.rbに記述する必要があります。詳細については、設定ドキュメントを参照してください。