Dela via


Set ställa in privat Git-anslutning för Azure Databricks Git-mappar (Repos)

Lär dig mer om och konfigurera Git-serverproxy för Databricks Git-mappar, en konfigurerbar tjänst som gör att du kan proxyhantera Git-kommandon från Git-mappar för Databricks-arbetsytan till dina lokala Git-lagringsplatser som hanteras av GitHub Enterprise Server, Azure DevOps Server, Bitbucket Server och GitLab självhanterade.

Kommentar

Användare med en Databricks Git-serverproxy som konfigurerats under förhandsversionen bör uppgradera sina klusterbehörigheter för bästa prestanda. Se Remove globala CAN_ATTACH_TO behörigheter.

Databricks Git-serverproxyn är särskilt utformad för att fungera med den version av Databricks Runtime som ingår i konfigurationsanteckningsboken. Användare avråder från att uppdatera Databricks Runtime-versionen av proxyklustret.

Vad är Git-serverproxy för Databricks Git-mappar?

Databricks Git-serverproxy för Git-mappar är en funktion som gör att du kan proxyhantera Git-kommandon från din Azure Databricks-arbetsyta till en lokal Git-server.

Databricks Git-mappar (tidigare Repos) representerar dina anslutna Git-lagringsplatser som mappar. Innehållet i dessa mappar är versionskontrollerat genom att synkronisera dem till den anslutna Git-lagringsplatsen. Som standard kan Git-mappar endast synkroniseras med offentliga Git-providers (till exempel offentliga GitHub, GitLab, Azure DevOps och andra). Men om du är värd för din egen lokala Git-server (till exempel GitHub Enterprise Server, Bitbucket Server eller GitLab självhanterad) måste du använda Git-serverproxy med Git-mappar för att ge Databricks åtkomst till din Git-server. Git-servern måste vara tillgänglig från ditt Azure Databricks-dataplan (drivrutinsnod).

Om ditt företagsnätverk endast är privat (VPN) åtkomst (ingen offentlig åtkomst) måste du köra en Git-serverproxy för att få åtkomst till Git-lagringsplatser som finns utanför den och för att lägga till Git-mappar på dina arbetsytor.

Hur fungerar Git Server Proxy för Databricks Git-mappar?

Git-serverproxy för Databricks Git-mappar vidarebefordrar Git-kommandon från Databricks kontrollplanet till ett proxykluster som körs i Databricksarbetsytans beräkningsplanen. I det här sammanhanget är proxyklustret ett kluster som konfigurerats för att köra en proxytjänst för Git-kommandon från Databricks Git-mappar till din egen värdbaserade Git-lagringsplats. Den här proxytjänsten tar emot Git-kommandon från Databricks-kontrollplanet och vidarebefordrar dem till din Git-serverinstans.

Diagrammet nedan illustrerar den övergripande systemarkitekturen:

Diagram som visar hur Git Server Proxy för Databricks Git-mappar konfigureras för att köras från en kunds beräkningsplan

För närvarande kräver CAN_ATTACH_TO en Git-serverproxy inte längre behörighet för alla användare. Administratörer med ett befintligt proxykluster kan nu ändra klustrets ACL-behörighet för att aktivera den här funktionen. För att aktivera den:

  1. Select Compute från sidofältet och klicka sedan på menyn Kebab kebab bredvid posten Compute för Git Server Proxy som du kör:

    Select Compute från sidopanelen select kebaben till höger om din Beräkningsresurs för Git-proxyservern

  2. I dialogrutan remove posten Kan koppla till för Alla användare:

    I den modala dialogrutan som visas klickar du på X till höger om Alla användare, Kan koppla till

Hur set jag git serverproxy för Databricks Git-mappar?

I det här avsnittet beskrivs hur du förbereder git-serverinstansen för Git-serverproxy för Databricks Git-mappar, skapar proxyn och validerar konfigurationen.

Innan du börjar

Innan du aktiverar proxyn kontrollerar du att:

  • Din arbetsyta har funktionen Databricks Git-mappar aktiverad.
  • Git-serverinstansen är tillgänglig från din Azure Databricks-arbetsytas virtuella dator med beräkningsplan och har både HTTPS och personliga åtkomsttoken (PAT) aktiverade.

Kommentar

Git-serverproxy för Databricks fungerar i alla regioner som stöds av din VPC.

Steg 1: Förbereda git-serverinstansen

Viktigt!

Du måste vara administratör på arbetsytan med åtkomstbehörighet för att kunna skapa en beräkningsresurs och slutföra den här uppgiften.

Så här konfigurerar du git-serverinstansen:

  1. Ge proxyklustrets drivrutinsnod åtkomst till Din Git-server.

    Din Git-företagsserver kan ha en allowlist ip-adress som åtkomst tillåts från.

    1. Associera en statisk utgående IP-adress för trafik som kommer från proxyklustret. Du kan göra detta med hjälp av Azure Firewall eller en utgående installation.
    2. Lägg till IP-adressen från föregående steg i git-serverns lista över tillåtna.
  2. Set din Git-serverinstans för att tillåta HTTPS-transport.

    • För GitHub Enterprise, se Vilken fjärr-URL ska jag använda i GitHub Enterprise-hjälpen.
    • För Bitbucket går du till administrationssidan för Bitbucket-servern och select serverinställningar. I avsnittet HTTP(S) SCM-värd aktiverar du kryssrutan HTTP(S) aktiverad .

Steg 2: Kör notebook-filen för aktivering

Så här aktiverar du proxyn:

  1. Logga in på din Azure Databricks-arbetsyta som arbetsyteadministratör med åtkomstbehörighet för att skapa ett kluster.

  2. Importera den här notebook-filen, som väljer den minsta instanstyp som är tillgänglig från molnleverantören för att köra Git-proxyn.:

    Notebook: Aktivera Git-serverproxy för Databricks Git-mappar för privat Git-serveranslutning i Git-mappar.

  3. Klicka på Kör alla för att köra anteckningsboken, som utför följande uppgifter:

    • Skapar en beräkningsresurs med en nod med namnet "Databricks Git Proxy", som inte avslutas automatiskt. Det här är Git-proxytjänsten som bearbetar och vidarebefordrar Git-kommandon från din Azure Databricks-arbetsyta till din lokala Git-server.
    • Aktiverar en funktionsflagga som styr om Git-begäranden i Databricks Git-mappar ska skickas via beräkningsinstansen.

    Som bästa praxis bör du överväga att skapa ett enkelt jobb för att köra Git-proxyberäkningsresursen. Det kan vara en enkel notebook-fil som skriver ut eller loggarnas status, till exempel "Git-proxytjänsten körs". Set att jobbet körs med regelbundna tidsintervall så att det säkerställs att Git-proxytjänsten alltid är tillgänglig för dina användare.

Kommentar

Att köra ytterligare en tidskrävande beräkningsresurs som värd för proxyprogramvaran medför extra DPU:er. För att minimera kostnaderna konfigurerar notebook-filen proxyn för att använda en beräkningsresurs med en enda nod med en billig nodtyp. Du kanske dock vill ändra beräkningsalternativen så att de passar dina behov. Mer information om prissättning för beräkningsinstanser finns i priskalkylatorn för Databricks.

Steg 3: Verifiera git-serverkonfigurationen

Om du vill verifiera din Git-serverkonfiguration försöker du klona en lagringsplats som finns på din privata Git-server via proxyklustret. En lyckad klon innebär att du har aktiverat Git-serverproxy för din arbetsyta.

Steg 4: Skapa proxyaktiverade Git-lagringsplatser

När användare har konfigurerat Git credentialskrävs inga ytterligare steg för att skapa eller synkronisera repos. Om du vill konfigurera credentials och komma åt lagringsplatserna för dina Git-mappar programmatiskt kan du läsa Konfigurera Git credentials & ansluta en fjärrlagringsplats till Azure Databricks.

Remove globala CAN_ATTACH_TO behörigheter

Administratörer med ett befintligt proxykluster kan nu ändra klustrets ACL-behörighet för att utnyttja allmänt tillgängliga Git-serverproxybeteenden.

Om du tidigare konfigurerade Databricks Git-serverproxy med CAN_ATTACH_TO behörigheter använder du följande steg för att remove dessa behörigheter:

  1. Select Compute- från sidofältet och klicka sedan på menyn Kebab kebab-menyn bredvid posten Compute för git-serverproxyn som du kör:

    Select Compute från sidopanelen select kebaben till höger om din Beräkningsresurs för Git-proxyservern

  2. I dialogrutan remove posten Kan koppla till för Alla användare:

    I den modala dialogrutan som visas klickar du på X till höger om Alla användare, Kan koppla till

Felsökning

Stötte du på ett fel när du konfigurerade Git-serverproxy för Databricks Git-mappar? Här följer några vanliga problem och sätt att diagnostisera dem mer effektivt.

Checklista för vanliga problem

Innan du börjar diagnostisera ett fel kontrollerar du att du har slutfört följande steg:

  • Bekräfta att din proxykluster körs med denna debug-notebook för Git-proxyservern . (Det här är en annan anteckningsbok än git-proxyserverns aktiveringsanteckning och tillhandahålls också av Databricks.)
  • Bekräfta att du är arbetsyteadministratör.
  • Kör resten av felsökningsanteckningsboken och samla in resultaten, om du inte redan har gjort det. Om du inte kan felsöka problemet eller inte ser några fel som rapporterats från felsökningsanteckningsboken kan Databricks-supporten granska resultatet. Du kan exportera och skicka felsökningsanteckningsboken som ett DBC-arkiv om det begärs.

Ändra din Git-proxykonfiguration

Om din Git-proxytjänst inte fungerar med standardkonfigurationen kan du set specifika miljövariabler för att göra ändringar i den för att bättre stödja nätverksinfrastrukturen.

Använd följande miljövariabler för att update konfigurationen för din Git-proxytjänst:

Miljövariabel Format beskrivning
GIT_PROXY_ENABLE_SSL_VERIFICATION true/false Set detta för att false om du använder ett självsignerat certifikat för din privata Git-server.
GIT_PROXY_CA_CERT_PATH Filsökväg (sträng) Set använd detta som sökvägen till en CA-certifikatfil som används för SSL-verifiering. Exempel: /FileStore/myCA.pem
GIT_PROXY_HTTP_PROXY https://<hostname>:<port #> Set detta till HTTPS-URL:en för nätverkets brandväggsproxy för HTTP-trafik.
GIT_PROXY_CUSTOM_HTTP_PORT Portnummer (heltal) Set detta till det portnummer som tilldelats till Git-serverns HTTP-port.

Om du vill set dessa miljövariabler går du till fliken Beräkning på din Azure Databricks-arbetsyta och select beräkningskonfigurationen för git-proxytjänsten. Längst ned i fönstret Konfiguration expanderar du Avancerade alternativ och select fliken Spark under den. Set Lägg till en eller flera av dessa miljövariabler genom att lägga till dem i Miljövariabler textområdet.

Databricks-beräkningskonfigurationssidan where du set miljövariabler för en Git-proxy

Granska loggar i proxyklustret

Filen på /databricks/git-proxy/git-proxy.log i proxyklustret innehåller loggar som är användbara för felsökning.

Loggfilen bör börja med raden Data-plane proxy server binding to ('', 8000)…. Om den inte gör det innebär det att proxyservern inte startade korrekt. Prova att starta om klustret eller ta bort klustret som du skapade och kör notebook-filen för aktivering igen.

Om loggfilen börjar med den här raden granskar du logginstruktionerna som följer den för varje Git-begäran som initieras av en Git-åtgärd i Databricks Git-mappar.

Till exempel:

  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`

Felloggar som skrivits till den här filen kan vara användbara för att hjälpa dig eller Databricks Support att felsöka problem.

Vanliga felmeddelanden och deras lösning

  • Det gick inte att upprätta en säker anslutning på grund av SSL-problem

    Följande fel kan inträffa:

      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
    

    Det innebär ofta att du använder en lagringsplats som kräver särskilda SSL-certifikat. Kontrollera innehållet i /databricks/git-proxy/git-proxy.log filen i proxyklustret. Om det står att certifikatverifieringen misslyckades måste du lägga till certifikatet för utfärdare i systemcertifikatkedjan. Extrahera först rotcertifikatet (med hjälp av webbläsaren eller något annat alternativ) och ladda upp det till DBFS. Redigera sedan Git-mapparnas Git Proxy-kluster för att använda GIT_PROXY_CA_CERT_PATH miljövariabeln för att peka på rotcertifikatfilen. Mer information om hur du redigerar klustermiljövariabler finns i Miljövariabler.

    När du har slutfört det steget startar du om klustret.

  • Det gick inte att klona lagringsplatsen med felet "Git credentialssaknas/ogiltigt"

    Kontrollera först att du har konfigurerat din Git-credentials i Användarinställningar.

    Det här felet kan uppstå:

      Error: Invalid Git credentials. Go to User Settings -> Git Integration and check that your personal access token or app password has the correct repository access.
    

    Om din organisation använder SAML SSO kontrollerar du att token har auktoriserats (detta kan göras från git-serverns hanteringssida för personlig åtkomsttoken (PAT).

Vanliga frågor och svar

Vilket är det enklaste sättet att ta reda på om Git-proxyservern körs?

Importera Git-proxyfelsök notebook- som tillhandahålls av Databricks. Ladda ned den till din lokala dator och importera den sedan till din Azure Databricks-arbetsyta.

När du kör notebook rapporteras det om det finns några fel eller problem med Git-proxytjänsten.

Vilka säkerhetskonsekvenser har Git-serverproxyn?

De viktigaste sakerna att veta är:

  • Proxying påverkar inte säkerhetsarkitekturen för databricks-kontrollplanet.
  • Du kan bara ha ett Git-proxyserverkluster per arbetsyta.

Ja. I den aktuella versionen skiljer inte din Azure Databricks-arbetsyta mellan proxierade och icke-proxierade lagringsplatser.

Fungerar Git-proxyfunktionen med andra Git Enterprise-server providers?

Databricks Git-mappar stöder Självhanterad GitHub Enterprise, Bitbucket Server, Azure DevOps Server och GitLab. Andra Git-servrar för företag, såsom providers, bör också fungera om de överensstämmer med allmänna Git-specifikationer.

Stöder Databricks Git-mappar GPG-signering av incheckningar?

Nej.

Stöder Databricks Git-mappar SSH-transport för Git-åtgärder?

Nej. Endast HTTPS stöds.

Stöds användningen av en HTTPS-standardport på Git-servern?

För närvarande förutsätter notebook-filen för aktivering att Git-servern använder HTTPS-standardporten 443. Du kan set miljövariabeln GIT_PROXY_CUSTOM_HTTP_PORT för att ersätta portvärdet med ett önskat värde.

Kan du dela en proxy för flera arbetsytor eller behöver du ett proxykluster per arbetsyta?

Du behöver ett proxykluster per Azure Databricks-arbetsyta.

Fungerar proxyn med äldre versionshantering med en notebook-fil?

Nej, proxyn fungerar inte med äldre versionshantering med en notebook-fil. Användare måste migrera till Versionshantering av Databricks Git-mappar.

Kan Databricks dölja Git-server-URL:er som är proxierade? Kan användarna ange de ursprungliga Url:erna för Git-servern i stället för proxierade URL:er?

Ja till båda frågorna. Användarna behöver inte justera sitt beteende för proxyn. Med den aktuella proxyimplementeringen dirigeras all Git-trafik för Databricks Git-mappar via proxyn. Användarna anger den normala Url:en för Git-lagringsplatsen, till exempel https://git.company.com/org/repo-name.git.

Hur ofta kommer användarna att arbeta med Git-URL:er?

Vanligtvis lägger en användare bara till Git-URL:en när de skapar en ny lagringsplats eller checkar ut en befintlig lagringsplats som de inte redan har checkat ut.

Har funktionen transparent proxyautentiseringsdata till Git-servern?

Ja, proxyn använder användarkontots Git-servertoken för att autentisera till Git-servern.

Finns det Databricks-åtkomst till Git-serverkod?

Azure Databricks-proxytjänsten har åtkomst till Git-lagringsplatsen på Git-servern med hjälp av användarspecifika autentiseringsuppgifter och synkroniserar alla kodfiler på lagringsplatsen med Git-mappen. Åtkomsten begränsas av de behörigheter som anges i den personliga åtkomsttoken (PAT) som tillhandahålls av användaren.