Condividi tramite


Configurare la connettività Git privata per le cartelle Git di Azure Databricks (Repos)

Scopri e configura il proxy del server Git per le cartelle Git di Databricks, un servizio configurabile che consente di inoltrare i comandi Git dalle cartelle Git dell'area di lavoro di Databricks ai repository Git locali gestiti da GitHub Enterprise Server, Azure DevOps Server, Bitbucket Server e GitLab a gestione autonoma.

Annotazioni

Gli utenti con un proxy server Git di Databricks configurato durante l'anteprima devono aggiornare le autorizzazioni del cluster per ottenere prestazioni ottimali. Consulta Rimuovere le autorizzazioni globali di CAN_ATTACH_TO.

Il proxy server Git di Databricks è progettato specificamente per funzionare con la versione di Databricks Runtime inclusa nel notebook di configurazione. Gli utenti sono scoraggiati dall'aggiornare la versione di Databricks Runtime del cluster proxy.

Che cos'è il proxy server Git per le cartelle Git di Databricks?

Il proxy server Git di Databricks per le cartelle Git è una funzionalità che consente di proxyare i comandi Git dall'area di lavoro di Azure Databricks a un server Git locale.

Le cartelle Git di Databricks (in precedenza Repos) rappresentano i tuoi repository Git connessi come cartelle. Il contenuto di queste cartelle è controllato dalla versione sincronizzandoli con il repository Git connesso. Per impostazione predefinita, le cartelle Git possono essere sincronizzate solo con i provider Git pubblici (ad esempio GitHub pubblico, GitLab, Azure DevOps e altri). Tuttavia, se si ospita un server Git locale ,ad esempio GitHub Enterprise Server, Bitbucket Server o GitLab autogestito, è necessario usare il proxy server Git con le cartelle Git per fornire l'accesso a Databricks al server Git. Il server Git deve essere accessibile dal piano dati di Azure Databricks (nodo driver).

Se la rete aziendale è privata (VPN) solo (nessun accesso pubblico), è necessario eseguire un proxy server Git per accedere ai repository Git che si trovano all'esterno e per aggiungere cartelle Git alle aree di lavoro.

Come funziona Git Server Proxy per le cartelle Git di Databricks?

Il server proxy Git per le cartelle Git di Databricks reindirizza i comandi Git dal controllo di Databricks a un cluster proxy che opera nel piano di calcolo dell'area di lavoro di Databricks. In questo contesto, il cluster proxy è un cluster configurato per eseguire un servizio proxy per i comandi Git dalle cartelle Git di Databricks verso il repository Git ospitato autonomamente. Una volta ricevuti i comandi Git dal piano di controllo di Databricks, questo servizio proxy li inoltra all'istanza del server Git.

Il diagramma seguente illustra l'architettura complessiva del sistema:

Diagramma che mostra come le cartelle Git Server Proxy per Databricks Git sono configurate per l'esecuzione dal piano di calcolo di un cliente

Importante

Databricks offre un notebook di abilitazione che puoi eseguire per configurare l'istanza del server Git per proxy dei comandi delle cartelle Git di Databricks. Ottieni il notebook di abilitazione su GitHub.

Attualmente, un proxy server Git non richiede CAN_ATTACH_TO più l'autorizzazione per tutti gli utenti. Gli amministratori con un cluster proxy esistente possono ora modificare l'autorizzazione ACL del cluster per abilitare questa funzionalità. Per abilitarlo:

  1. Selezionare Calcolo dalla barra laterale e quindi fare clic sull'icona del menu Kebab. Menu kebab accanto alla voce Calcolo per il proxy Git Server in esecuzione:

    Selezionare Calcolo dalla barra laterale, selezionare il kebab a destra della risorsa di calcolo del server proxy Git

  2. Nella finestra di dialogo, rimuovere l'elemento Can Attach To per All Users:

    Nella finestra di dialogo modale visualizzata fare clic su X a destra di Tutti gli utenti, Può collegarsi a

Come si configura git server proxy per le cartelle Git di Databricks?

Questa sezione descrive come preparare l'istanza del server Git per il proxy server Git delle cartelle Git di Databricks, creare il proxy e convalidare la configurazione.

Prima di iniziare

Prima di abilitare il proxy, assicurarsi che:

  • L'area di lavoro dispone della funzionalità Cartelle Git di Databricks abilitata.
  • L'istanza del server Git è accessibile dal VPC del piano di calcolo dell'area di lavoro di Azure Databricks e ha abilitato sia i token di accesso HTTPS sia quelli personali.

Annotazioni

Il proxy server Git per Databricks funziona in tutte le aree supportate dal VPC.

Passaggio 1: Preparare l'istanza del server Git

Importante

È necessario essere un amministratore dell'area di lavoro con diritti di accesso per creare una risorsa di calcolo e completare questa attività.

Per configurare l'istanza del server Git:

  1. Assegnare al nodo driver del cluster proxy l'accesso al server Git.

    Il server Git aziendale può avere un allowlist di indirizzi IP da cui è consentito l'accesso.

    1. Associare un indirizzo IP statico in uscita per il traffico originato dal cluster proxy. A tale scopo, è possibile usare Firewall di Azure o un'appliance in uscita.
    2. Aggiungere l'indirizzo IP del passaggio precedente all'elenco di elementi consentiti del server Git.
  1. Impostare l'istanza del server Git per consentire il trasporto HTTPS.
    • Per GitHub Enterprise, vedere Quale URL remoto usare nella guida di GitHub Enterprise.
    • Per Bitbucket, passare alla pagina di amministrazione del server Bitbucket e selezionare impostazioni server. Nella sezione Hosting SCM HTTP(S) abilita la casella di controllo HTTP(S).

Passaggio 2: Eseguire il notebook di abilitazione

Per abilitare il proxy:

  1. Accedere all'area di lavoro di Azure Databricks come amministratore dell'area di lavoro con diritti di accesso per creare un cluster.

  2. Importa questo notebook, che sceglie il tipo di istanza più piccolo disponibile dal tuo provider di servizi cloud per eseguire il proxy Git.

    Notebook: Attivare il proxy del server Git per le cartelle Git di Databricks per connettersi a server Git privati nelle cartelle Git.

  3. Fare clic su Esegui tutto per eseguire il notebook, che esegue le attività seguenti:

    • Crea una risorsa di calcolo a nodo singolo denominata "Databricks Git Proxy", che non termina automaticamente. Si tratta del servizio proxy Git che elabora e inoltra i comandi Git dall'area di lavoro di Azure Databricks al server Git locale.
    • Abilita un flag di funzionalità che determina se le richieste Git nelle cartelle Git di Databricks vengono inviate tramite il proxy dell'istanza di calcolo.

    Come procedura consigliata, provare a creare un processo semplice per eseguire la risorsa di calcolo proxy Git. Può trattarsi di un notebook semplice che stampa o registra lo stato, ad esempio "Il servizio proxy Git è in esecuzione". Impostare il processo da eseguire a intervalli di tempo regolari per assicurarsi che il servizio proxy Git sia sempre disponibile per gli utenti.

Annotazioni

L'esecuzione di una risorsa di calcolo aggiuntiva a lungo termine per ospitare il software proxy comporta costi aggiuntivi in DBUs. Per ridurre al minimo i costi, il notebook configura il proxy per l'uso di una risorsa di calcolo a nodo singolo con un tipo di nodo economico. Tuttavia, è possibile modificare le opzioni di calcolo in base alle proprie esigenze. Per altre informazioni sui prezzi delle istanze di calcolo, vedere il calcolatore dei prezzi di Databricks.

Passaggio 3: Convalidare la configurazione del server Git

Per convalidare la configurazione del server Git, provare a clonare un repository ospitato nel server Git privato tramite il cluster proxy. Un clone riuscito significa che è stato abilitato correttamente il proxy server Git per l'area di lavoro.

Passaggio 4: Creare repository Git con abilitazione al proxy

Dopo che gli utenti configurano le credenziali Git, non sono necessari altri passaggi per creare o sincronizzare i repository. Per configurare le credenziali e accedere ai repository per le cartelle Git a livello di codice, vedere Configurare le credenziali Git & connettere un repository remoto ad Azure Databricks.

Rimuovere le autorizzazioni di CAN_ATTACH_TO globali

Gli amministratori con un cluster proxy esistente possono ora modificare l'autorizzazione ACL del cluster per sfruttare il comportamento proxy del server Git disponibile a livello generale.

Se il proxy server Git di Databricks è stato configurato in precedenza con privilegi di CAN_ATTACH_TO, seguire questa procedura per rimuovere queste autorizzazioni:

  1. Selezionare Calcolo dalla barra laterale e quindi fare clic sull'icona del menu Kebab. Menu kebab accanto alla voce Calcolo per il proxy server Git in esecuzione:

    Selezionare Calcolo dalla barra laterale, selezionare il kebab a destra della risorsa di calcolo del server proxy Git

  2. Nella finestra di dialogo, rimuovere l'elemento Can Attach To per All Users:

    Nella finestra di dialogo modale visualizzata fare clic su X a destra di Tutti gli utenti, Può collegarsi a

Risoluzione dei problemi

Si è verificato un errore durante la configurazione del proxy del server Git per le cartelle Git di Databricks? Ecco alcuni problemi comuni e modi per diagnosticarli in modo più efficace.

Elenco di controllo per i problemi comuni

Prima di iniziare a diagnosticare un errore, verificare di aver completato i passaggi seguenti:

  • Verificare che il cluster proxy sia in esecuzione con questo notebook di debug del server proxy Git.
  • Verificare di essere un amministratore dell'area di lavoro.
  • Eseguire il resto del notebook di debug e acquisire i risultati. Se non è possibile eseguire il debug del problema o non vengono visualizzati errori segnalati dal notebook di debug, il supporto di Databricks può esaminare i risultati. È possibile esportare e inviare il notebook di debug come archivio DBC, se richiesto.

Modificare la configurazione del proxy Git

Se il servizio proxy Git non funziona con la configurazione predefinita, è possibile impostare variabili di ambiente specifiche per apportare modifiche per supportare meglio l'infrastruttura di rete.

Usare le variabili di ambiente seguenti per aggiornare la configurazione per il servizio proxy Git:

Variabile di ambiente Formato Descrizione
GIT_PROXY_ENABLE_SSL_VERIFICATION true/false Impostare questa opzione su false se si usa un certificato autofirmato per il server Git privato.
GIT_PROXY_CA_CERT_PATH Percorso file (stringa) Impostare questa opzione sul percorso di un file di certificato della CA usato per la verifica SSL. Esempio: /FileStore/myCA.pem
GIT_PROXY_HTTP_PROXY https://<hostname>:<port #> Impostare questa opzione sull'URL HTTPS per il proxy firewall della rete per il traffico HTTP.
GIT_PROXY_CUSTOM_HTTP_PORT Numero di porta (intero) Impostare questo valore sul numero di porta assegnato alla porta HTTP del server Git.

Per impostare queste variabili di ambiente, passare alla scheda Calcolo nell'area di lavoro di Azure Databricks e selezionare la configurazione di calcolo per il servizio proxy Git. Nella parte inferiore del riquadro Configurazione espandere Avanzate e selezionare la scheda Spark sotto di essa. Impostare una o più di queste variabili di ambiente aggiungendole all'area di testo Variabili di ambiente.

Pagina di configurazione di calcolo di Databricks in cui si impostano le variabili di ambiente per un proxy Git

Esaminare i log nel cluster proxy

Il file in /databricks/git-proxy/git-proxy.log nel cluster proxy contiene i log utili per scopi di debug.

Il file di log deve iniziare con la riga Data-plane proxy server binding to ('', 8000)…. In caso contrario, significa che il server proxy non è stato avviato correttamente. Provare a riavviare il cluster oppure eliminare il cluster creato ed eseguire di nuovo il notebook di abilitazione.

Se il file di log inizia con questa riga, esaminare le istruzioni di log che lo seguono per ogni richiesta Git avviata da un'operazione Git nelle cartelle Git di Databricks.

Per esempio:

  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`

I registri degli errori scritti in questo file possono essere utili per aiutarti o il Supporto Databricks a risolvere i problemi di debug.

Messaggi di errore comuni e la relativa risoluzione

  • Impossibile stabilire una connessione sicura a causa di problemi SSL

    Potrebbe essere visualizzato l'errore seguente:

      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
    

    Spesso ciò significa che si usa un repository che richiede certificati SSL speciali. Controllare il contenuto del /databricks/git-proxy/git-proxy.log file nel cluster proxy. Se si dice che la convalida del certificato non è riuscita, è necessario aggiungere il certificato dell'autorità alla catena di certificati di sistema. Prima di tutto, estrarre il certificato radice (usando il browser o un'altra opzione) e caricarlo in DBFS. Modificare quindi il cluster Git Proxy delle cartelle Git per usare la GIT_PROXY_CA_CERT_PATH variabile di ambiente in modo che punti al file del certificato radice. Per altre informazioni sulla modifica delle variabili di ambiente del cluster, vedere Variabili di ambiente.

    Dopo aver completato questo passaggio, riavviare il cluster.

  • Errore durante la clonazione del repository con errore "Credenziali Git mancanti/non valide"

    Prima di tutto, verificare di avere configurato le credenziali Git in Impostazioni utente.

    Questo errore potrebbe verificarsi:

      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.
    

    Se l'organizzazione usa l'accesso SSO SAML, assicurarsi che il token sia stato autorizzato (questa operazione può essere eseguita dalla pagina di gestione del token di accesso personale del server Git).

Domande frequenti

Qual è il modo più semplice per scoprire se il server proxy Git è in esecuzione?

Importare ed eseguire il notebook di debug del proxy Git. I risultati dell'esecuzione del notebook mostrano se si verificano problemi con il servizio proxy Git.

Quali sono le implicazioni per la sicurezza del proxy server Git?

  • Il proxy non influisce sull'architettura di sicurezza del piano di controllo di Databricks.
  • È possibile avere un solo cluster server proxy Git per area di lavoro.

Sì. L'area di lavoro di Azure Databricks non distingue tra repository proxy e non proxy.

La funzionalità proxy Git funziona con altri fornitori di server aziendali Git?

Le cartelle Git di Databricks supportano GitHub Enterprise, Bitbucket Server, Azure DevOps Server e GitLab autogestito. Altri provider di server Git aziendali devono funzionare anche se sono conformi alle specifiche Git comuni.

Le cartelle Git di Databricks supportano la firma gpg dei commit?

No

Le cartelle Git di Databricks supportano il trasporto SSH per le operazioni Git?

No È supportato solo HTTPS.

L'uso di una porta HTTPS non predefinita nel server Git è supportato?

Attualmente, il notebook di abilitazione presuppone che il server Git usi la porta HTTPS predefinita 443. È possibile impostare la variabile di ambiente GIT_PROXY_CUSTOM_HTTP_PORT per sovrascrivere il valore della porta con quello preferito.

È possibile condividere un proxy per più aree di lavoro o è necessario un cluster proxy per area di lavoro?

È necessario un cluster proxy per ogni area di lavoro di Azure Databricks.

Databricks può nascondere gli URL del server Git che vengono passati tramite proxy? Gli utenti possono immettere gli URL del server Git originali anziché gli URL proxy?

Sì a entrambe le domande. Gli utenti non devono modificare il comportamento per il proxy. Con l'implementazione del proxy corrente, tutto il traffico Git per le cartelle Git di Databricks viene instradato tramite il proxy. Gli utenti immettono il normale URL del repository Git, ad esempio https://git.company.com/org/repo-name.git.

La funzionalità trasmette in modo trasparente i dati di autenticazione al server Git?

Sì, il proxy usa il token del server Git dell'account utente per l'autenticazione nel server Git.

È disponibile l'accesso a Databricks al codice del server Git?

Il servizio proxy di Azure Databricks accede al repository Git nel server Git usando le credenziali fornite dall'utente e sincronizza tutti i file di codice nel repository con la cartella Git. L'accesso è limitato dalle autorizzazioni specificate nel token di accesso personale fornito dall'utente.