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

Informazioni su e configurare il proxy server Git per le cartelle Git di Databricks, un servizio configurabile che consente di eseguire il proxy dei comandi Git dalle cartelle Git dell'area di lavoro di Databricks ai repository locali gestiti da GitHub Enterprise Server, Azure DevOps Server, Bitbucket Server e GitLab autogestito.

Nota

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

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 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).

Nota

Attualmente, le cartelle Git di Databricks possono contenere solo notebook e sottocartelle di Databricks, insieme a un set specifico di altri tipi di asset. Per un elenco corrente dei tipi di asset supportati, vedere Limiti e domande frequenti per l'integrazione di Git con le cartelle Git di Databricks.

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

Git Server Proxy per le cartelle Git di Databricks esegue proxy di comandi Git dal piano di controllo di Databricks a un "cluster proxy" in esecuzione 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 al repository Git self-hosted. Questo servizio proxy riceve i comandi Git dal piano di controllo di Databricks e 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

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

  1. Selezionare Calcolo dalla barra laterale e quindi fare clic sul 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. Dalla finestra di dialogo rimuovere la voce Can Attach To (Collega a) per Tutti gli utenti:

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

Ricerca per categorie configurare le cartelle Git Server Proxy per Databricks?

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

Operazioni preliminari

Prima di abilitare il proxy, considerare i prerequisiti e le attività di pianificazione seguenti:

  • 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 dispone sia di token di accesso HTTPS che personali abilitati.

Nota

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

Passaggio 1: Preparare l'istanza del server Git

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.
  2. 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) abilitare la casella di controllo HTTP(S) abilitata .

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. Importare questo notebook:

    Abilitare il proxy server Git per le cartelle Git di Databricks per la connettività privata del server Git nelle cartelle Git.

  3. Selezionare "Esegui tutto" per eseguire le attività seguenti:

    • Creare un cluster a nodo singolo denominato "Databricks Git Proxy", che non termina automaticamente. Si tratta del "cluster proxy" che elabora e inoltra i comandi Git dall'area di lavoro di Azure Databricks al server Git locale.
    • Abilitare un flag di funzionalità che controlla se le richieste Git nelle cartelle Git di Databricks vengono inviate tramite proxy tramite il cluster.

Importante

Per creare un cluster, è necessario essere un amministratore dell'area di lavoro con diritti di accesso.

Nota

È necessario tenere presente quanto segue:

  • L'esecuzione di un cluster aggiuntivo a esecuzione prolungata per ospitare il software proxy comporta un numero aggiuntivo di DBU. Per ridurre al minimo i costi, il notebook configura il proxy per l'uso di un cluster a nodo singolo con un tipo di nodo economico. Tuttavia, è possibile modificare le opzioni del cluster in base alle proprie esigenze.

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 abilitati per il 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 creare un repository nelle cartelle Git di Databricks, vedere Configurare le credenziali Git e connettere un repository remoto ad Azure Databricks.

Rimuovere le autorizzazioni di CAN_ATTACH_TO globali

Amministrazione con un cluster proxy esistente può ora modificare l'autorizzazione ACL del cluster per sfruttare il comportamento proxy del server Git disponibile a livello generale.

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

  1. Selezionare Calcolo dalla barra laterale e quindi fare clic sul 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. Dalla finestra di dialogo rimuovere la voce Can Attach To (Collega a) per Tutti gli utenti:

    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.
  • Verificare che le cartelle Git di Databricks abbiano autorizzazioni di collegamento al cluster proxy.
  • Eseguire di nuovo il notebook di abilitazione e acquisire i risultati, se non è già stato fatto. Se non è possibile eseguire il debug del problema, il supporto di Databricks può esaminare i risultati. È possibile esportare e inviare il notebook di abilitazione come archivio DBC.

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.

Ad 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 log degli errori scritti in questo file possono essere utili per aiutare l'utente o databricks a supportare 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 il messaggio di 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.

    Finestra di dialogo modale di Databricks in cui si impostano le variabili di ambiente per un proxy Git

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

    Prima di tutto, verificare di aver configurato le credenziali Git in User Impostazioni.

    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 repo 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

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

Le cose più importanti da conoscere sono:

  • 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ì. Nella versione corrente, l'area di lavoro di Azure Databricks non distingue tra i repository proxy e non proxy.

La funzionalità proxy Git funziona con altri provider 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 per sovrascrivere GIT_PROXY_CUSTOM_HTTP_PORT 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.

Il proxy funziona con il controllo delle versioni di un singolo notebook legacy?

No, il proxy non funziona con il controllo delle versioni legacy a notebook singolo. Gli utenti devono eseguire la migrazione al controllo delle versioni delle cartelle Git di Databricks.

Databricks può nascondere gli URL del server Git proxied? 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, https://git.company.com/org/repo-name.gitad esempio .

Con quale frequenza gli utenti funzioneranno con gli URL Git?

In genere, un utente aggiunge semplicemente l'URL Git quando crea un nuovo repository o estrae un repository esistente che non è già stato estratto.

La funzionalità esegue in modo trasparente i dati di autenticazione proxy per il 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 il repository. L'accesso è limitato dalle autorizzazioni specificate nel token di accesso personale fornito dall'utente.