Compartilhar via


Configurar a conectividade Git privada para pastas Git do Databricks (Repos)

Conheça e configure o proxy de servidor Git para pastas Git do Databricks, um serviço configurável que permite usar um proxy de comandos Git nas pastas Git do workspace do Databricks para os repositórios locais atendidos pelo GitHub Enterprise Server, pelo Azure DevOps Server, pelo Bitbucket Server e pelo GitLab autogerenciado.

Observação

Os usuários com um proxy de servidor Git do Databricks configurado durante a versão prévia devem atualizar as permissões de cluster para obter o melhor desempenho. Consulte Remover permissões CAN_ATTACH_TO globais.

O que é proxy de servidor Git para pastas Git do Databricks?

O proxy de servidor Git para pastas Git do Databricks é um recurso que permite usar um proxy de comandos Git do workspace do Azure Databricks para um servidor Git local.

As pastas Git do Databricks (anteriormente Repos) representam seus repositórios Git conectados como pastas. O conteúdo dessas pastas é controlado por versão ao sincronizá-las com o repositório Git conectado. Por padrão, as pastas Git podem sincronizar somente com provedores Git públicos (como GitHub público, GitLab, Azure DevOps e outros). No entanto, se você hospedar seu servidor Git local (como o GitHub Enterprise Server, o Bitbucket Server ou o GitLab autogerenciado), deve usar o proxy de servidor Git com pastas Git para fornecer acesso ao Databricks no servidor Git. O servidor Git deve estar acessível no plano de dados do Azure Databricks (nó do driver).

Observação

No momento, as pastas Git do Databricks podem conter apenas notebooks e subpastas do Databricks, juntamente com um conjunto específico de outros tipos de ativos. Para obter uma lista atual de tipos de ativos com suporte, confira Limites e perguntas frequentes sobre a integração do Git com pastas Git do Databricks.

Como funciona o proxy de servidor Git para pastas Git do Databricks?

O proxy de servidor Git para pastas Git do Databricks realiza proxies de comandos Git do painel de controle do Databricks em um “cluster proxy” em execução no plano de computação do workspace do Databricks. Nesse contexto, o cluster proxy é um cluster configurado para executar um serviço de proxy para comandos Git das pastas Git do Databricks para o repositório Git auto-hospedado. Esse serviço proxy recebe os comandos Git do painel de controle do Databricks e os encaminha para a instância do servidor Git.

O diagrama abaixo ilustra a arquitetura geral do sistema:

Diagrama que mostra como o proxy de servidor Git para pastas Git do Databricks está configurado para ser executado a partir do plano de computação do cliente

Atualmente, um proxy de servidor Git não requer mais permissão CAN_ATTACH_TO para todos os usuários. Administradores com clusters proxy existentes agora podem modificar a permissão de ACL do cluster para habilitar esse recurso. Para habilitá-lo:

  1. Selecione Computação na barra lateral e, em seguida, clique no menu kebab Menu kebab ao lado da entrada de computação para o proxy de servidor Git que você está executando:

    Selecione Computação na barra lateral, selecione o kebab à direita do recurso de computação do seu servidor proxy Git

  2. Na caixa de diálogo, remova a entrada Pode ser anexado a para Todos os Usuários:

    Na caixa de diálogo modal que aparece, clique em X à direita de Todos os Usuários, Pode Anexar a

Como configurar o proxy de servidor Git para pastas Git do Databricks?

Esta seção descreve como preparar a instância do servidor Git para o proxy de servidor Git para pastas Git do Databricks, criar o proxy e validar a configuração.

Antes de começar

Antes de habilitar o proxy, considere os seguintes pré-requisitos e tarefas de planejamento:

  • Seu workspace tem o recurso de pastas Git do Databricks habilitado.
  • Sua instância do servidor Git está acessível no VPC do plano de computação do espaço de trabalho do Azure Databricks e tem HTTPS e tokens de acesso pessoal (PATs) habilitados.

Observação

O proxy do servidor Git para Databricks funciona em todas as regiões compatíveis com seu VPC.

Etapa 1: preparar a instância do servidor Git

Para configurar a instância do servidor Git:

  1. Dê ao nó do driver do cluster proxy acesso no servidor Git.

    O servidor Git empresarial pode ter um allowlist dos endereços IP a partir dos quais o acesso é permitido.

    1. Associe um endereço IP de saída estático ao tráfego originado no cluster proxy. Você pode fazer isso usando o Firewall do Azure ou um dispositivo de saída.
    2. Adicione o endereço IP da etapa anterior à lista de permissões do servidor Git.
  2. Defina a instância do servidor Git para permitir o transporte HTTPS.

    • No GitHub Enterprise, confira Qual URL remota devo usar na ajuda do GitHub Enterprise.
    • No Bitbucket, vá para a página de administração do servidor Bitbucket e selecione as configurações do servidor. Na seção de hospedagem HTTP(S) SCM, marque a caixa de seleção HTTP(S) habilitado.

Etapa 2: executar o notebook de habilitação

Para habilitar o proxy:

  1. Faça logon no workspace do Azure Databricks como administrador de workspace com direitos de acesso para criar um cluster.

  2. Importe este notebook:

    Habilite o proxy de servidor Git para pastas Git do Databricks para conectividade com servidor Git privado em pastas Git.

  3. Selecione "Executar tudo" para executar as seguintes tarefas:

    • Crie um cluster de nó único chamado "Proxy Git do Databricks", que não termina automaticamente. Esse é o "cluster proxy" que processará e encaminhará os comandos Git do workspace do Azure Databricks para o servidor Git local.
    • Habilite um sinalizador de recurso que controle se as solicitações do Git nas pastas Git do Databricks são intermediadas por proxy por meio do cluster.

Importante

Você deve ser um administrador no workspace com direitos de acesso para criar um cluster.

Observação

Você deve estar ciente do seguinte:

  • A execução de um cluster adicional de execução prolongada para hospedar o software proxy incorre em DBUs extras. Para minimizar os custos, o notebook configura o proxy para usar um cluster de nó único com um tipo de nó barato. No entanto, convém modificar as opções de cluster para atender às suas necessidades.

Etapa 3: validar a configuração do servidor Git

Para validar a configuração do servidor Git, tente clonar um repositório hospedado no servidor Git privado por meio do cluster proxy. Um clone bem-sucedido indica que você habilitou o proxy do servidor Git para o workspace.

Etapa 4: criar repositórios habilitados para proxy

Depois que os usuários configuram suas credenciais do Git, nenhuma etapa adicional é necessária para criar ou sincronizar os repositórios. Para configurar as credenciais e criar um repositório nas pastas Git do Databricks, confira Configurar as credenciais do Git e conectar um repositório remoto ao Azure Databricks.

Remover permissões CAN_ATTACH_TO globais

Os administradores com clusters proxy existentes agora podem modificar a permissão de ACL do cluster para aproveitar o comportamento de proxy do servidor Git em disponibilidade geral.

Se você configurou anteriormente o proxy do servidor Git do Databricks com privilégios de CAN_ATTACH_TO, use as seguintes etapas para remover essas permissões:

  1. Selecione Computação na barra lateral e, em seguida, clique no menu kebab Menu kebab ao lado da entrada de computação para o proxy do servidor Git que você está executando:

    Selecione Computação na barra lateral, selecione o kebab à direita do recurso de computação do seu servidor proxy Git

  2. Na caixa de diálogo, remova a entrada Pode ser anexado a para Todos os Usuários:

    Na caixa de diálogo modal que aparece, clique em X à direita de Todos os Usuários, Pode Anexar a

Solução de problemas

Você encontrou um erro ao configurar o proxy de servidor Git para as pastas Git do Databricks? Veja abaixo alguns problemas comuns e as maneiras de diagnosticá-los de forma mais eficaz.

Lista de verificação de problemas comuns

Antes de começar a diagnosticar um erro, confirme se você concluiu as seguintes etapas:

  • Confirme se o cluster proxy está em execução.
  • Confirme se os usuários das pastas Git do Databricks têm permissões "anexar a" no cluster proxy.
  • Execute o notebook de habilitação novamente e capture os resultados, se ainda não o tiver feito. Se você não conseguir depurar o problema, o Suporte do Databricks poderá examinar os resultados. Você pode exportar e enviar o notebook de habilitação como arquivo DBC.

Inspecionar logs no cluster proxy

O arquivo em /databricks/git-proxy/git-proxy.log do cluster proxy contém logs úteis para fins de depuração.

O arquivo de log deve começar com a linha Data-plane proxy server binding to ('', 8000)… Se isso não acontecer, isso significa que o servidor proxy não foi iniciado corretamente. Tente reiniciar o cluster ou exclua o cluster criado e execute o notebook de habilitação novamente.

Se o arquivo de log começar com essa linha, examine as instruções de log que o seguem para cada solicitação Git iniciada por uma operação Git nas pastas Git do Databricks.

Por exemplo:

  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`

Os logs de erros gravados nesse arquivo podem ser úteis para ajudar você ou os problemas de depuração do Suporte ao Databricks.

Mensagens de erro comuns e as respectivas resoluções

  • Não foi possível estabelecer uma conexão segura devido a problemas de SSL

    Você pode ver os seguintes erros:

      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
    

    Muitas vezes, isso significa que você está usando um repositório que requer certificados SSL especiais. Verifique o conteúdo do arquivo /databricks/git-proxy/git-proxy.log no cluster proxy. Se ele indicar que a validação do certificado falhou, você deverá adicionar o certificado de autoridade à cadeia de certificados do sistema. Primeiro, extraia o certificado raiz (usando o navegador ou outra opção) e carregue-o no DBFS. Em seguida, edite o cluster Proxy Git das pastas Git para usar a variável de ambiente GIT_PROXY_CA_CERT_PATH para apontar para o arquivo de certificado raiz. Para obter mais informações sobre como editar as variáveis de ambiente do cluster, confira Variáveis de ambiente.

    Depois de concluir essa etapa, reinicie o cluster.

    A caixa de diálogo modal do Databricks em que você define variáveis de ambiente para um proxy Git

  • Falha ao clonar o repositório com erro "Credenciais Git ausentes/inválidas"

    Primeiro, verifique se você configurou as credenciais do Git em Configurações do Usuário.

    Você pode encontrar este erro:

      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 sua organização estiver usando o SSO SAML, verifique se o token foi autorizado (isso pode ser feito na página de gerenciamento do PAT (Personal Access Token) do servidor Git).

Perguntas frequentes

Quais são as implicações de segurança do proxy do servidor Git?

O mais importante a saber é o seguinte:

  • O proxy não afeta a arquitetura de segurança do plano de controle do Databricks.
  • Você só pode ter um cluster de servidor proxy Git por workspace.

Sim. Na versão atual, o workspace do Azure Databricks não diferencia entre repositórios com proxy e sem proxy.

O recurso de proxy Git funciona com outros provedores de servidor empresarial Git?

As pastas Git do Databricks são compatíveis com GitHub Enterprise, Bitbucket Server, Azure DevOps Server e GitLab autogerenciado. Outros provedores de servidores Git empresariais também devem funcionar se estiverem em conformidade com as especificações comuns do Git.

As pastas Git do Databricks dão suporte à assinatura GPG de commits?

Não.

As pastas Git do Databricks dão suporte ao transporte SSH para operações Git?

Não. Há suporte somente para HTTPS.

Há suporte para o uso de uma porta HTTPS não padrão no servidor Git?

No momento, o notebook de habilitação pressupõe que o servidor Git usa a porta HTTPS padrão 443. Você pode definir a variável de ambiente GIT_PROXY_CUSTOM_HTTP_PORT para substituir o valor da porta por um valor preferencial.

Você pode compartilhar um proxy com vários workspaces ou precisa de um cluster proxy por workspace?

Você precisa de um cluster proxy por workspace do Azure Databricks.

O proxy funciona com o controle de versão de notebook único herdado?

Não, o proxy não funciona com o controle de versão de notebook único herdado. Os usuários devem migrar para o controle de versão das pastas Git do Databricks.

O Databricks pode ocultar URLs de servidor Git que são usam um proxy? Os usuários poderiam inserir as URLs originais do servidor Git, em vez de URLs com proxy?

Sim para ambas as perguntas. Os usuários não precisam ajustar o comportamento para o proxy. Com a implementação do proxy atual, todo o tráfego Git para pastas Git do Databricks é encaminhado através do proxy. Os usuários inserem a URL de repositório Git normal, como https://git.company.com/org/repo-name.git.

Com que frequência os usuários trabalharão com as URLs do Git?

Normalmente, um usuário apenas adiciona a URL do Git quando cria um novo repositório ou faz check-out de um repositório existente do qual ainda não fez check-out.

O recurso usa um proxy de forma transparente nos dados de autenticação para o servidor Git?

Sim, o proxy usa o token do servidor Git da conta de usuário para autenticar no servidor Git.

Existe acesso do Databricks ao código do servidor Git?

O serviço proxy do Azure Databricks acessa o repositório Git no servidor Git usando a credencial fornecida pelo usuário e sincroniza todos os arquivos de código no repositório com o repositório. O acesso é restrito pelas permissões especificadas no PAT (token de acesso pessoal) fornecido pelo usuário.