GitLab Self-ManagedでのGitLab Duoの設定
- 提供形態: GitLab Self-Managed
前提条件
- 送信と受信の両方の接続を許可します。ネットワークファイアウォールによって遅延が発生する可能性があります。
- サイレントモードをオフにする。
- アクティベーションコードでGitLabインスタンスをアクティベートします。レガシーライセンスは使用できません。GitLab Duo Self-Hostedの場合を除き、オフラインライセンスも使用できません。
- 複合アイデンティティをオンにします。
最良の結果を得るには、GitLab 17.2以降を使用してください。以前のバージョンでも動作する可能性がありますが、パフォーマンスが低下する可能性があります。
複合アイデンティティをオンにする
複合アイデンティティをオンにして、@duo-developerサービスアカウントがユーザーの代わりにアクションを実行できるようにする必要があります。
- 右上隅で、管理者を選択します。
- 左側のサイドバーで、GitLab Duoを選択します。
- GitLab Duo Agent Platformの複合アイデンティティで、Turn on composite identityを選択します。
GitLabインスタンスからの送信接続を許可する
送信と受信の両方の設定を確認します:
- ファイアウォールとHTTP/Sプロキシサーバーは、
https://を使用してポート443でcloud.gitlab.comとcustomers.gitlab.comへの送信接続を許可する必要があります。これらのホストはCloudflareによって保護されています。ファイアウォールの設定を更新して、Cloudflareが公開しているIP範囲のリスト内のすべてのIPアドレスへのトラフィックを許可します。 - HTTP/Sプロキシを使用するには、
gitLab_workhorseとgitLab_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://を使用して443のduo-workflow-svc.runway.gitlab.netへの送信接続を許可し、HTTP/2トラフィックをサポートする必要があります。
クライアントからGitLabインスタンスへの受信接続を許可する
GitLabインスタンスは、IDEクライアントからの受信接続を許可する必要があります。
- ヘッダーでWebSocketプロトコルのアップグレードリクエストを許可します:
Connection: upgradeUpgrade: websocketHTTP/2プロトコルのサポート- 標準のWebSocketセキュリティヘッダー:
Sec-WebSocket-*
wss://(WebSocket Secure)プロトコルのサポートを有効にします。- 許可する特定のエンドポイントを追加します:
- プライマリエンドポイント:
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機能を使用できない可能性があります。
これはベータ版の機能です。
前提条件:
- 管理者である必要があります。
ヘルスチェックを実行するには:
- 右上隅で、管理者を選択します。
- 左側のサイドバーで、GitLab Duoを選択します。
- 右上隅でヘルスチェックを実行するを選択します。
- オプション。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 Self-Hostedを使用してAIゲートウェイをホストし、サポートされているセルフホストモデルを使用できます。このオプションを選択すると、データとセキュリティを完全に制御できます。
- ハイブリッド構成を使用します。一部の機能には独自のAIゲートウェイとモデルをホストしますが、他の機能にはGitLab AIゲートウェイとAIベンダーモデルを使用します。
GitLab Duo Coreの可用性を示すサイドバーウィジェットを非表示にする(削除済み)
この機能はGitLab 18.6で削除されました。