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

GitLab Self-ManagedでのGitLab Duoの設定

  • 提供形態: GitLab Self-Managed

前提条件

最良の結果を得るには、GitLab 17.2以降を使用してください。以前のバージョンでも動作する可能性がありますが、パフォーマンスが低下する可能性があります。

複合アイデンティティをオンにする

複合アイデンティティをオンにして、@duo-developerサービスアカウントがユーザーの代わりにアクションを実行できるようにする必要があります。

  1. 右上隅で、管理者を選択します。
  2. 左側のサイドバーで、GitLab Duoを選択します。
  3. GitLab Duo Agent Platformの複合アイデンティティで、Turn on composite identityを選択します。

GitLabインスタンスからの送信接続を許可する

送信と受信の両方の設定を確認します:

  • ファイアウォールとHTTP/Sプロキシサーバーは、https://を使用してポート443cloud.gitlab.comcustomers.gitlab.comへの送信接続を許可する必要があります。これらのホストはCloudflareによって保護されています。ファイアウォールの設定を更新して、Cloudflareが公開しているIP範囲のリスト内のすべてのIPアドレスへのトラフィックを許可します。
  • HTTP/Sプロキシを使用するには、gitLab_workhorsegitLab_railsの両方に必要なWebプロキシ環境変数を設定する必要があります。
  • マルチノードのGitLabインストールでは、すべてのRailsおよびSidekiqノードでHTTP/Sプロキシを設定します。
  • GitLabアプリケーションノードは、HTTP/2でhttps://duo-workflow-svc.runway.gitlab.netにあるGitLab Duoワークフローに接続する必要があります。アプリケーションとサービスはgRPCで通信します。
  • GitLab DuoエージェントPlatformの機能では、ファイアウォールとHTTP/Sプロキシサーバーが、https://を使用して443duo-workflow-svc.runway.gitlab.netへの送信接続を許可し、HTTP/2トラフィックをサポートする必要があります。

クライアントからGitLabインスタンスへの受信接続を許可する

GitLabインスタンスは、IDEクライアントからの受信接続を許可する必要があります。

  1. ヘッダーでWebSocketプロトコルのアップグレードリクエストを許可します:
    • Connection: upgrade
    • Upgrade: websocket
    • HTTP/2プロトコルのサポート
    • 標準のWebSocketセキュリティヘッダー: Sec-WebSocket-*
  2. wss://(WebSocket Secure)プロトコルのサポートを有効にします。
  3. 許可する特定のエンドポイントを追加します:
    • プライマリエンドポイント: wss://<customer-instance>/-/cable
    • HTTP/2プロトコルがHTTP/1.1にダウングレードされないようにします。
    • ポート: 443(HTTPS/WSS)

問題が発生した場合:

  • wss://gitlab.example.com/-/cableやその他の.comドメインへのWebSocketトラフィックの制限を確認します。
  • Apacheのようなリバースプロキシを使用している場合は、ログにGitLab Duo Chat接続の問題(WebSocket connection to …. failuresなど)が表示されることがあります。

この問題を解決するには、プロキシ設定を編集します:

# Enable WebSocket reverse Proxy
# Needs proxy_wstunnel enabled
  RewriteCond %{HTTP:Upgrade} websocket [NC]
  RewriteCond %{HTTP:Connection} upgrade [NC]
  RewriteRule ^/?(.*) "ws://127.0.0.1:8181/$1" [P,L]

Runnerからの接続を許可する

フローのようなRunnerを使用するGitLab DuoエージェントPlatformの機能では、RunnerがGitLabインスタンスに接続できる必要があります。

クライアントからGitLabインスタンスへの受信接続)と同じ接続を、RunnerからGitLabインスタンスへの送信接続として許可する必要があります。

GitLab Duoのヘルスチェックを実行する

  • ステータス: ベータ版

インスタンスがGitLab Duoを使用するための要件を満たしているかどうかを判断できます。ヘルスチェックが完了すると、合格または失敗の結果と問題の種類が表示されます。ヘルスチェックがテストに失敗した場合、ユーザーはインスタンスでGitLab Duo機能を使用できない可能性があります。

これはベータ版の機能です。

前提条件:

  • 管理者である必要があります。

ヘルスチェックを実行するには:

  1. 右上隅で、管理者を選択します。
  2. 左側のサイドバーで、GitLab Duoを選択します。
  3. 右上隅でヘルスチェックを実行するを選択します。
  4. オプション。GitLab 17.5以降では、ヘルスチェックが完了した後、レポートのダウンロードを選択して、ヘルスチェック結果の詳細レポートを保存できます。

次のテストが実行されます:

テスト説明
AIゲートウェイGitLab Duo Self-Hostedモデルのみ。AIゲートウェイのURLが環境変数として設定されているかどうかをテストします。この接続は、AIゲートウェイを使用するセルフホストモデルのデプロイに必要です。
ネットワークインスタンスがcustomers.gitlab.comおよびcloud.gitlab.comに接続できるかどうかをテストします。

インスタンスがいずれかの宛先に接続できない場合は、ファイアウォールまたはプロキシサーバーの設定が接続を許可していることを確認してください。
同期サブスクリプションが次の条件を満たしているかどうかををテストします:
- アクティベーションコードでアクティブ化されており、customers.gitlab.comと同期できる。
- 正しいアクセス認証情報を持っている。
- 最近同期されている。そうでない場合、またはアクセス認証情報がないか期限切れになっている場合は、サブスクリプションデータを手動で同期できます。
コード提案GitLab Duo Self-Hostedモデルのみ。コード提案が利用可能かどうかをテストします:
- お客様のライセンスには、コード提案へのアクセスが含まれています。
- この機能を使用するために必要な権限が必要です。
GitLab Duo Agent Platformバックエンドサービスが稼働中でアクセス可能かどうかをテストします。このサービスは、Agent PlatformやGitLab Duo Chat(エージェント)のようなエージェント機能に必要です。
システム連携インスタンスでコード提案を使用できるかどうかをテストします。システム連携アセスメントが失敗した場合、ユーザーはGitLab Duo機能を使用できない可能性があります。

バージョン17.10より前のGitLabインスタンスで、ヘルスチェックに問題が発生した場合は、トラブルシューティングページを参照してください。

その他のホスティングオプション

デフォルトでは、GitLab DuoはサポートされているAIベンダーの言語モデルを使用し、GitLabがホストするクラウドベースのAIゲートウェイを介してデータを送信します。

独自の言語モデルまたはAIゲートウェイをホストする場合:

GitLab Duo Coreの可用性を示すサイドバーウィジェットを非表示にする(削除済み)

この機能はGitLab 18.6で削除されました。