Поделиться через


Настройка частного подключения Git для папок Git Azure Databricks

Если вы размещаете частный сервер Git (например, GitHub Enterprise Server, Bitbucket Server или GitLab с самоуправлением) или сервер Git находится за брандмауэром в защищенной сети, вы можете использовать прокси-сервер Git для подключения папок Git в Databricks к вашим частным репозиториям. Прокси-сервер направляет команды Git из рабочей области Azure Databricks через вычислительный ресурс на частный сервер Git.

Сведения о прокси-сервере Git

Прокси-сервер Databricks Git для папок Git позволяет выполнять прокси-команды Git из рабочей области Azure Databricks на частный сервер Git, который недоступен в Интернете.

Папки Databricks Git представляют подключенные репозитории Git в виде папок. Содержимое этих папок управляется версией путем синхронизации с подключенным репозиторием Git. По умолчанию папки Git могут синхронизироваться только с репозиториями, доступными в Интернете. Если вы размещаете частный сервер Git или сервер Git находится за брандмауэром, необходимо использовать прокси-сервер Git с папками Git. Сервер Git должен быть доступен из вычислительной плоскости Azure Databricks.

Когда следует использовать прокси-сервер Git

Используйте следующее руководство, чтобы определить, нужно ли настроить прокси-сервер Git:

  • Вам нужен прокси-сервер Git, если ваш сервер Git является частным, находится на территории предприятия или за брандмауэром, например GitHub Enterprise Server, Bitbucket Server, самостоятельно управляемый GitLab или Azure DevOps Server.
  • Вам не нужен прокси-сервер Git, если репозитории находятся в облачных службах, доступных из общедоступного Интернета, например GitHub.com, GitLab.com, Bitbucket Cloud или Azure DevOps Services.

После включения все трафик папок Git в рабочей области направляется через прокси-кластер, включая общедоступные репозитории.

Как работает прокси-сервер Git

Прокси-сервер Git для Databricks пересылает команды Git из плоскости управления Databricks в прокси-кластер, работающий в вычислительной плоскости вашей рабочей области. Прокси-кластер настроен для запуска прокси-службы, которая получает команды Git из плоскости управления Databricks и перенаправит их на сервер Git. Прокси-сервер не влияет на архитектуру безопасности уровня управления Databricks.

Ниже показана общая архитектура системы:

Схема, показывающая, как Git Server Proxy для папок Databricks Git настроен для запуска с вычислительной плоскости

Внимание

Databricks предоставляет ноутбук поддержки для настройки экземпляра сервера Git для прокси-команд для папок Databricks Git. Получите тетрадь для обучения с GitHub. Прокси-сервер Databricks Git предназначен для работы с версией среды выполнения Databricks, включенной в записную книжку конфигурации. Не обновляйте версию среды выполнения Databricks в прокси-кластере.

Настройка прокси-сервера Git Server

Чтобы включить частное подключение Git для папок Git в Databricks, подготовьте экземпляр сервера Git, запустите ноутбук настройки для создания прокси-сервера и проверьте конфигурацию.

Чтобы настроить прокси-сервер Git, выполните следующие действия.

  1. Подготовьте экземпляр сервера Git со статическими IP-адресами и транспортом HTTPS.
  2. Запустите ноутбук настройки, чтобы создать прокси-кластер.
  3. Проверьте конфигурацию, клонируя репозиторий.
  4. Настройте учетные данные Git для пользователей.

Предпосылки

Перед включением прокси-сервера проверьте следующее:

  • Ваш экземпляр сервера Git доступен из вычислительной плоскости виртуальной сети Azure (VNet) в рабочей области Azure Databricks и имеет включенные возможности как для HTTPS, так и для персональных токенов доступа (PATs).

Примечание.

Прокси-сервер Git для Databricks работает во всех регионах, поддерживаемых виртуальной сетью.

Шаг 1. Подготовка экземпляра сервера Git

Внимание

Чтобы создать вычислительный ресурс и выполнить эту задачу, необходимо быть администратором рабочей области с правами доступа.

Настройте сервер Git для приема подключений из прокси-кластера и включения транспорта HTTPS.

Корпоративный сервер Git обычно содержит список разрешенных IP-адресов. Чтобы разрешить узлу драйвера прокси-кластера доступ к серверу Git, свяжите статический исходящий IP-адрес для трафика, исходящего из прокси-кластера, и добавьте его в список разрешений сервера Git.

  1. Привяжите статический исходящий IP-адрес для трафика, исходящего из вашего прокси-кластера, используя брандмауэр Azure или устройство для исходящего трафика.
  2. Добавьте IP-адрес из предыдущего шага в список разрешений сервера Git.

Затем настройте экземпляр сервера Git, чтобы разрешить транспорт HTTPS:

Шаг 2. Запуск блокнота активации

Чтобы включить прокси-сервер, выполните следующие действия.

  1. Войдите в рабочую область Azure Databricks в качестве администратора рабочей области с правами доступа для создания кластера.

  2. Импортируйте эту записную книжку, которая выбирает самый маленький тип экземпляра, доступный поставщику облачных служб для запуска прокси-сервера Git:

    Записная книжка: включение прокси-сервера Git для папок Databricks Git, обеспечивающее подключение к частному серверу Git в этих папках.

  3. Нажмите кнопку "Запустить все ", чтобы запустить записную книжку, которая выполняет следующие задачи:

    • Создает вычислительный ресурс одного узла с именем Databricks Git Proxy, который не завершает работу автоматически. Эта служба прокси-сервера обрабатывает и пересылает команды Git из рабочей области Azure Databricks на частный сервер Git.
    • Включает флаг функции, который определяет, направляются ли запросы Git в папках Databricks Git через вычислительный экземпляр.

    Рекомендуется создать задание для запуска прокси-вычислительного ресурса Git на регулярной основе. Это обеспечивает доступность прокси-службы Git для пользователей.

Примечание.

Запуск дополнительного долгосрочного вычислительного ресурса приводит к добавочным единицам Databricks (DBUs). Чтобы свести к минимуму затраты, блокнот настраивает прокси-сервер на использование вычислительного ресурса на одном узле с недорогим типом узла. Измените параметры вычислений в соответствии с вашими потребностями. Сведения о ценах см. в калькуляторе цен Databricks.

Шаг 3. Проверка конфигурации сервера Git

Чтобы проверить конфигурацию сервера Git, клонируйте репозиторий, размещенный на частном сервере Git через прокси-кластер. Успешное клонирование подтверждает, что прокси-сервер Git работает для вашей рабочей среды.

Шаг 4. Создание репозиториев Git с поддержкой прокси-сервера

После настройки учетных данных Git дальнейшие действия не требуются для создания или синхронизации репозиториев. Чтобы настроить учетные данные и репозитории доступа программным способом, см. статью "Подключение поставщика Git к Databricks".

Удалите глобальные разрешения CAN ATTACH TO

Прокси-сервер Git не требует CAN ATTACH TO разрешения для любого пользователя. Чтобы запретить пользователям выполнять произвольные рабочие нагрузки в прокси-кластере, ограничьте разрешения списка управления доступом к кластеру (ACL) на прокси-сервере:

  1. Щелкните "Вычисления " на боковой панели и выберите запись вычислений для запущенного прокси-сервера Git Server.

  2. Щелкните значок меню Kebab и выберите пункт "Разрешения".

  3. В диалоговом окне удалите запись Can Attach To для всех пользователей рабочей области.

Устранение неполадок

В этом разделе рассматриваются распространенные проблемы и способы их диагностики.

Контрольный список распространенных проблем

Прежде чем приступить к диагностике ошибки, убедитесь в следующем:

Запустите остальную часть записной книжки отладки и зафиксируйте результаты. Если вы не можете устранить проблему или не видите никаких сбоев, поддержка Databricks может просмотреть результаты. Экспортируйте и отправьте записную книжку отладки в виде архива DBC при запросе.

Изменение конфигурации прокси-сервера Git

Если прокси-служба Git не работает с конфигурацией по умолчанию, задайте переменные среды для поддержки сетевой инфраструктуры.

Чтобы обновить конфигурацию для службы прокси-сервера Git, используйте следующие переменные среды:

Переменная среды Формат Описание
GIT_PROXY_ENABLE_SSL_VERIFICATION true/false Задайте для этого значение false, если вы используете самозаверяющий сертификат для частного сервера Git.
GIT_PROXY_CA_CERT_PATH Путь к файлу (строка) Задайте для этого путь к файлу сертификата ЦС, используемому для проверки SSL. Пример: /FileStore/myCA.pem
GIT_PROXY_HTTP_PROXY https://<hostname>:<port #> Задайте для этого URL-адрес HTTPS для прокси-сервера брандмауэра сети для HTTP-трафика.
GIT_PROXY_CUSTOM_HTTP_PORT Номер порта (целое число) Задайте для этого номер порта, назначенный HTTP-порту сервера Git.

Чтобы задать эти переменные среды, выполните следующие действия.

  1. Перейдите на вкладку "Вычисления " в рабочей области Azure Databricks.
  2. Выберите конфигурацию вычислений для прокси-службы Git.
  3. В нижней части области "Конфигурация" разверните узел "Дополнительно " и перейдите на вкладку Spark .
  4. Добавьте переменные среды в поле переменных среды .

Проверка журналов в прокси-кластере

Файл в /databricks/git-proxy/git-proxy.log прокси-кластере содержит журналы, которые полезны для отладки.

Файл журнала должен начинаться с Data-plane proxy server binding to ('', 8000)…. Если это не так, прокси-сервер не был запущен должным образом. Перезапустите кластер или удалите кластер и снова запустите ноутбук для включения.

Если файл журнала начинается с этой строки, просмотрите инструкции журнала, которые следуют за каждым запросом Git, инициированным операциями Git в папках Databricks 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 SSL problems

Это часто означает, что вы используете репозиторий, для которых требуются специальные SSL-сертификаты. /databricks/git-proxy/git-proxy.log Проверьте файл в прокси-кластере. Если проверка сертификата завершилась ошибкой, добавьте удостоверяющий центр в цепочку системных сертификатов.

  1. Извлеките корневой сертификат с помощью браузера или другого метода и отправьте его в файловую систему Databricks.
  2. Измените кластер Git Proxy папок Git, чтобы задать переменную среды, указывающую на GIT_PROXY_CA_CERT_PATH корневой файл сертификата. См. раздел Переменные среды.

После выполнения этих действий перезапустите кластер.

Часто задаваемые вопросы

Ниже приведены распространенные вопросы о настройке и использовании прокси-сервера Git.

Как проверить, запущен ли прокси-сервер Git?

Импортируйте и запустите записную книжку отладки прокси-сервера Git. Результаты показывают, есть ли проблемы со службой прокси-сервера Git.

Могут ли рабочие области совместно использовать кластеры прокси-сервера?

Для каждой рабочей области Azure Databricks требуется собственный прокси-кластер. Вы не можете совместно использовать прокси-кластер в нескольких рабочих областях, и каждая рабочая область может иметь только один прокси-кластер Git.

Можно ли маршрутизировать только некоторый трафик Git через прокси-сервер?

Весь трафик, связанный с папками Databricks Git, проходит через прокси-кластер, даже для общедоступных репозиториев Git. Рабочая область Azure Databricks не различает проксированные и непроксированные репозитории.

Какие поставщики Git поддерживаются?

Папки Databricks Git поддерживают GitHub Enterprise, Bitbucket Server, Azure DevOps Server и GitLab самостоятельно. Другие поставщики корпоративных серверов Git также должны работать, если они соответствуют общим спецификациям Git.

Поддерживается ли GNU Privacy Guard (GPG) для подписания коммитов?

Поддерживается ли транспорт SSH?

№ Поддерживается только ПРОТОКОЛ HTTPS.

Можно ли использовать порт HTTPS, отличный от по умолчанию?

Рабочая тетрадь настройки предполагает, что сервер Git использует стандартный HTTPS-порт 443. Задайте переменную GIT_PROXY_CUSTOM_HTTP_PORT среды для использования другого порта.

Нужно ли пользователям изменять URL-адреса Git для прокси-сервера?

№ Пользователи введите обычный URL-адрес репозитория Git, например https://git.company.com/org/repo-name.git. Весь трафик Git для папок Databricks Git проходит через прокси-сервер автоматически.

Как работает проверка подлинности с прокси-сервером?

Прокси-сервер использует учетные данные пользователя Git для проверки подлинности на сервере Git. Доступ ограничен разрешениями, указанными в учетных данных.