Databricks Git フォルダー (Repos) のプライベート Git 接続をセットアップする
Git フォルダーの Git サーバー プロキシについて学習し、構成することで、Databricks Git フォルダーから GitHub Enterprise Server、Bitbucket Server、GitLab の自己管理によって提供されるオンプレミスのリポジトリに Git コマンドをプロキシできます。
注:
プレビュー中に Databricks Git サーバー プロキシが構成されているユーザーは、最高のパフォーマンスを得るためにクラスターのアクセス許可をアップグレードする必要があります。 「グローバルCAN_ATTACH_TO権限の削除」を参照してください。
Databricks Git サーバー プロキシは、構成ノートブックに含まれる DBR のバージョンで動作するように特別に設計されています。 ユーザーは、プロキシ クラスターの DBR バージョンを更新しないことをお勧めします。
Databricks Git フォルダーの Git サーバー プロキシとは何ですか?
Git フォルダー用の Databricks Git サーバー プロキシは、Databricks ワークスペースからオンプレミスの Git サーバーに Git コマンドをプロキシできる機能です。
Databricks Git フォルダー(旧称 Repos) は、接続された Git リポジトリをフォルダーとして表します。 これらのフォルダーの内容は、接続されている Git リポジトリに同期することでバージョン管理されます。 デフォルトでは、Git フォルダーはパブリック Git プロバイダー (パブリック GitHub、GitLab、Azure DevOps など) とのみ同期できます。 ただし、独自のオンプレミス Git サーバー (GitHub Enterprise Server、Bitbucket Server、GitLab 自己管理型など) をホストする場合は、Git サーバー プロキシと Git フォルダーを使用して、Git サーバーへの Databricks アクセスを提供する必要があります。 Git サーバーは Databricks データ プレーン (ドライバー ノード) からアクセスできる必要があります。
企業ネットワークがプライベート (VPN) アクセスのみ (パブリック アクセスなし) の場合、Git サーバー プロキシを実行して、その外部にある Git リポジトリにアクセスし、ワークスペースに Git フォルダーを追加する必要があります。
Databricks Git フォルダーの Git サーバー プロキシはどのように機能しますか?
Databricks の Git サーバー プロキシ Git フォルダーは、Databricks コントロール プレーンから Databricks ワークスペースのコンピュート プレーンで実行されている「プロキシ クラスター」に Git コマンドをプロキシします。 このコンテキストでは、プロキシ クラスターは、Databricks Git フォルダーからセルフホスト Git リポジトリへの Git コマンドのプロキシ サービスを実行するように構成されたクラスターです。 このプロキシ サービスは、Databricks コントロール プレーンから Git コマンドを受信し、Git サーバー インスタンスに転送します。
次の図は、全体的なシステム アーキテクチャを示しています。
重要
Databricks は、 Databricks Git フォルダーのコマンドをプロキシするように Git サーバー インスタンスを構成するために実行できる有効化ノートブックを提供します。 GitHub でイネーブルメント ノートブックを入手してください。
現在、Git サーバー プロキシでは、すべてのユーザーに対するCAN_ATTACH_TO
権限は必要なくなりました。 既存のプロキシ クラスターを使用する管理者は、クラスター ACL 権限を変更してこの機能を有効にできるようになりました。 有効にするには:
サイドバーから「コンピュート」を選択し、実行している Git サーバー プロキシのコンピュート エントリの横にある kebab メニュー:
ダイアログから、 [すべてのユーザー]Can Attach To の 削除します。
Databricks Git フォルダー用に Git サーバー プロキシを設定するにはどうすればよいですか?
このセクションでは、Databricks Git フォルダー用の Git サーバー プロキシ用に Git サーバー インスタンスを準備し、プロキシを作成し、構成を検証する方法について説明します。
始める前に
プロキシを有効にする前に、次の前提条件と計画タスクを検討してください。
ワークスペースでは Databricks Git フォルダー機能が有効になっています。
Git サーバー インスタンスは、Databricks ワークスペースのコンピュート プレーン VPC からアクセスでき、HTTPS と個人用アクセス トークン (PAT) の両方が有効になっています。
注:
Databricks の Git サーバー プロキシは、VPC でサポートされているすべてのリージョンで動作します。
ステップ 1: Git サーバーインスタンスを準備する
重要
コンピュートリソースを作成してこのタスクを完了するには、ワークスペースの管理者としてアクセス権を持っている必要があります。
Git サーバーインスタンスを設定するには:
プロキシ クラスターのドライバー ノードに Git サーバーへのアクセス権を付与します。
エンタープライズ Git サーバーには、アクセスを許可する IP アドレスの
allowlist
を設定できます。プロキシー・クラスターから発信されるトラフィックの静的アウトバウンド IP アドレスを関連付けます。 これを行うには、NAT ゲートウェイを介してトラフィックをプロキシします。
前の手順の IP アドレスを Git サーバーの許可リストに追加します。
HTTPS トランスポートを許可するように Git サーバーインスタンスを設定します。
GitHub Enterprise については、GitHub Enterprise ヘルプの「 どのリモート URL を使うべきか 」を参照してください。
[Bitbucket ] で [Bitbucket サーバー管理] ページに移動し、[サーバー設定] を選択します。 [HTTP(S) SCM ホスティング] セクションで、[ HTTP(S) を有効にする ] チェック ボックスをオンにします。
ステップ 2: 有効化のためのノートブックを実行する
プロキシを有効にするには:
クラスターを作成するためのアクセス権を持つワークスペース管理者として Databricks ワークスペースにログインします。
このノートブックをインポートすると、Git プロキシを実行するためにクラウド プロバイダーから利用可能な最小のインスタンス タイプが選択されます。
ノートブック: Git フォルダー内のプライベート Git サーバー接続のために、Databricks Git フォルダーの Git サーバー プロキシを有効にします。
「すべて実行」をクリックすると、次のタスクを実行する が実行されます。
自動終了しない「 Proxy」という名前の 単一のノード を作成します。DatabricksGitこれは、Databricks ワークスペースからオンプレミスの Git サーバーに Git コマンドを処理して転送する「Git プロキシ サービス」です。
GitDatabricksGitフォルダー内の 要求がコンピュート インスタンス経由でプロキシされるかどうかを制御する機能フラグを有効にします。
ベスト プラクティスとして、 Gitプロキシ コンピュート リソースを実行するための単純なジョブを作成することを検討してください。 これは、「Git プロキシ サービスが実行中です」などのステータスを印刷または記録するシンプルなノートブックになります。 ユーザーが Git プロキシ サービスを常に利用できるように、ジョブを定期的に実行するように設定します。
注:
プロキシ ソフトウェアをホストするために追加の長時間実行されるコンピュート リソースを実行すると、追加の DBU が発生します。 コストを最小限に抑えるために、デルは安価なノード タイプを持つ単一ノード コンピュート リソースを使用するようにプロキシを構成します。 ただし、必要に応じてコンピュート オプションを変更する必要がある場合があります。 コンピュート インスタンスの価格の詳細については、 Databricks calculatorを参照してください。
ステップ 3: Git サーバーの構成を検証する
Git サーバーの構成を検証するには、プロキシ クラスターを介してプライベート Git サーバーでホストされているリポジトリのクローンを作成してみます。 クローンが成功したということは、ワークスペースに対して Git サーバー プロキシが正常に有効化されたことを意味します。
ステップ 4: プロキシ対応repoを作成する
ユーザーが Git 資格情報を構成した後、リポジトリを作成または同期するためにそれ以上のステップは必要ありません。 資格情報を構成し、Databricks Git フォルダーにリポジトリを作成するには、 「Git 資格情報を構成し、リモート リポジトリを Databricks に接続する」を参照してください。
グローバルCAN_ATTACH_TO権限の削除
既存のプロキシ クラスターを使用する管理者は、クラスター ACL 権限を変更して、一般的に利用可能な Git サーバー プロキシ動作を活用できるようになりました。
以前に Databricks Git サーバー プロキシをCAN_ATTACH_TO
権限で構成した場合は、次のステップを使用してこれらの権限を削除します。
サイドバーから「コンピュート」を選択し、実行している Git サーバー プロキシのコンピュート エントリの横にある kebab メニュー:
ダイアログから、 [すべてのユーザー]Can Attach To の 削除します。
トラブルシューティング
Databricks Git フォルダーの Git サーバー プロキシを構成中にエラーが発生しましたか? ここでは、一般的な問題と、それらをより効果的に診断する方法をいくつか紹介します。
一般的な問題のチェックリスト
エラーの診断を開始する前に、次の手順が完了していることを確認してください。
プロキシ クラスターが実行されていることを確認します。
ワークスペース管理者であることを確認します。
有効化のためのノートブックを再度実行し、結果をキャプチャします (まだキャプチャしていない場合)。 問題をデバッグできない場合は、Databricks サポートが結果を確認できます。 有効化のためのノートブックをエクスポートして、DBC アーカイブとして送信できます。
Git プロキシの設定を変更する
Git プロキシ サービスがデフォルト設定で動作しない場合は、特定の環境変数を設定して変更を加え、ネットワーク インフラストラクチャをより適切にサポートできます。
次の環境変数を使用して、Git プロキシ サービスの構成を更新します。
環境変数 |
フォーマット |
説明 |
---|---|---|
|
|
プライベート Git サーバーに自己署名証明書を使用している場合は、これを |
|
ファイルパス (文字列) |
これを、SSL 検証に使用される CA 証明書ファイルへのパスに設定します。 例: |
|
|
これを、HTTP トラフィック用のネットワークのファイアウォール プロキシの HTTPS URL に設定します。 |
|
ポート番号 (整数) |
これを Git サーバーの HTTP ポートに割り当てられたポート番号に設定します。 |
これらの環境変数を設定するには、 Databricks ワークスペースのコンピュート タブに移動し、 Git プロキシ サービスのコンピュート設定を選択します。 [構成] ウィンドウの下部にある [詳細オプション] を展開し、その下にある [Spark] タブを選択します。これらの環境変数を 1 つ以上設定するには、 それらを [環境変数 ] テキスト領域に追加します。
プロキシ クラスターのログを検査する
プロキシ クラスター上の /databricks/git-proxy/git-proxy.log
にあるファイルには、デバッグに役立つログが含まれています。
ログファイルは行で始まる必要があります Data-plane proxy server binding to ('', 8000)…
そうでない場合は、プロキシサーバーが正しく起動しなかったことを意味します。 クラスターを再起動するか、作成したクラスターを削除して、有効化のためのノートブックを再度実行してみてください。
ログ ファイルがこの行で始まる場合は、Databricks Git フォルダー内の Git 操作によって開始された各 Git リクエストについて、それに続くログ ステートメントを確認してください。
例:
do_GET: https://server-address/path/to/repo/info/refs?service=git-upload-pack 10.139.0.25 - - [09/Jun/2021 06:53:02] /
"GET /server-address/path/to/repo/info/refs?service=git-upload-pack HTTP/1.1" 200`
このファイルに書き込まれたエラー ログは、ユーザーまたは Databricks サポートのデバッグの問題に役立ちます。
一般的なエラー メッセージとその解決方法
SSL の問題のため、セキュリティで保護された接続を確立できませんでした
次のエラーが表示される場合があります。
https://git.consult-prodigy.com/Prodigy/databricks_test: Secure connection to https://git.consult-prodigy.com/Prodigy/databricks_test could not be established because of SLL problems
多くの場合、これは特別な SSL 証明書を必要とするリポジトリを使用していることを意味します。 プロキシ クラスター上の
/databricks/git-proxy/git-proxy.log
ファイルの内容を確認します。 証明書の検証に失敗したと表示される場合は、認証局証明書をシステム証明書チェーンに追加する必要があります。 まず、ルート証明書を( ブラウザまたはその他のオプションを使用して)抽出し、DBFSにアップロードします。 次に、 Git フォルダーの Git プロキシクラスターを編集して、GIT_PROXY_CA_CERT_PATH
環境変数を使用してルート証明書ファイルを指すようにします。 クラスター環境変数の編集の詳細については、 「環境変数」を参照してください。その手順を完了したら、クラスターを再起動します。
「Git資格情報が見つからない/無効です」というエラーでリポジトリのクローンを作成できませんでした
まず、[ ユーザー設定] で Git 資格情報を構成していることを確認します。
次のエラーが発生する可能性があります。
Error: Invalid Git credentials. Go to User Settings -> Git Integration and check that your personal access token or app password has the correct repo access.
組織で SAML SSO を使用している場合は、トークンが承認されていることを確認します (これは、Git サーバーの個人用アクセストークン (PAT) 管理ページから実行できます)。
よくある質問
Gitサーバープロキシのセキュリティへの影響は何ですか?
知っておくべき最も重要なことは次のとおりです。
プロキシは、Databricks コントロール プレーンのセキュリティ アーキテクチャには影響しません。
ワークスペースごとに Git プロキシ サーバー クラスターを 1 つだけ使用できます。
Git プロキシ機能は他の Git エンタープライズ サーバー プロバイダーで動作しますか?
Databricks Git フォルダーは、GitHub Enterprise、Bitbucket Server、Azure DevOps Server、および GitLab セルフマネージドをサポートしています。 他のエンタープライズ Git サーバー プロバイダーも、一般的な Git 仕様に準拠していれば同様に機能します。
Git サーバーでの既定以外の HTTPS ポートの使用はサポートされていますか?
現在、有効化ノートブックでは、Git サーバーがデフォルトの HTTPS ポート 443 を使用していることを前提としています。 環境変数 GIT_PROXY_CUSTOM_HTTP_PORT
を設定して、ポート値を優先値で上書きできます。
プロキシは従来の単一ノートブックのバージョン管理で動作しますか?
いいえ、プロキシは従来の単一ノートブックのバージョン管理では機能しません。 ユーザーは Databricks Git フォルダーのバージョン管理に移行する必要があります。
Databricks はプロキシされている Git サーバーの URL を非表示にできますか? ユーザーはプロキシされた URL ではなく、元の Git サーバーの URL を入力できますか?
どちらの質問にも「はい」です。 ユーザーは、プロキシの動作を調整する必要はありません。 現在のプロキシ実装では、Databricks Git フォルダーのすべての Git トラフィックはプロキシ経由でルーティングされます。 ユーザーは、 https://git.company.com/org/repo-name.git
などの通常の Git リポジトリ URL を入力します。