Set 업 Azure Databricks Git 폴더(Repos)에 대한 프라이빗 Git 연결 설정
Databricks 작업 영역 Git 폴더에서 GitHub Enterprise Server, Azure DevOps Server, Bitbucket Server 및 GitLab 자체 관리에서 제공하는 온-프레미스 Git 리포지토리로 Git 명령을 프록시할 수 있는 구성 가능한 서비스인 Databricks Git 폴더에 대한 Git 서버 프록시에 대해 알아보고 구성합니다.
참고 항목
미리 보기 중에 구성된 Databricks Git 서버 프록시가 있는 사용자는 최상의 성능을 위해 클러스터 권한을 업그레이드해야 합니다. Remove 전역 CAN_ATTACH_TO 권한를 참조하세요.
Databricks Git 서버 프록시는 구성 Notebook에 포함된 Databricks 런타임 버전을 사용하도록 특별히 설계되었습니다. 사용자는 프록시 클러스터의 Databricks 런타임 버전을 업데이트하지 않는 것이 좋습니다.
Databricks Git 폴더에 대한 Git 서버 프록시란?
Git 폴더에 대한 Databricks Git 서버 프록시는 Azure Databricks 작업 영역에서 온-프레미스 Git 서버로 Git 명령을 프록시할 수 있는 기능입니다.
Databricks Git 폴더(이전의 리포지토리)는 연결된 Git 리포지토리를 폴더로 나타냅니다. 이러한 폴더의 콘텐츠는 연결된 Git 리포지토리와 동기화하여 버전 제어됩니다. 기본적으로 Git 폴더는 공용 Git providers(예: 공용 GitHub, GitLab, Azure DevOps 등)와만 동기화할 수 있습니다. 그러나 자체 온-프레미스 Git 서버(예: GitHub Enterprise Server, Bitbucket Server 또는 GitLab 자체 관리)를 호스트하는 경우 Git 폴더와 함께 Git 서버 프록시를 사용하여 Git 서버에 대한 Databricks 액세스를 제공해야 합니다. Git 서버는 Azure Databricks 데이터 평면(드라이버 노드)에서 액세스할 수 있어야 합니다.
회사 네트워크가 프라이빗(VPN) 액세스만(공용 액세스 없음)인 경우 Git 서버 프록시를 실행하여 외부에 있는 Git 리포지토리에 액세스하고 작업 영역에 Git 폴더를 추가해야 합니다.
Databricks Git 폴더에 대한 Git 서버 프록시는 어떻게 작동하나요?
Databricks Git 폴더에 대한 Git 서버 프록시는 Databricks 제어 플레인에서 Git 명령을 수신하고, 이를 Databricks 작업 영역의 컴퓨팅 평면에 실행 중인 프록시 클러스터로 전달합니다. 이 컨텍스트에서 프록시 클러스터는 Databricks Git 폴더에서 자체 호스팅 Git 리포지토리로 Git 명령에 대한 프록시 서비스를 실행하도록 구성된 클러스터입니다. 이 프록시 서비스는 Databricks 컨트롤 플레인에서 Git 명령을 수신하고 Git 서버 인스턴스로 전달합니다.
아래 다이어그램은 전체 시스템 아키텍처를 보여줍니다.
Important
Databricks는 Databricks Git 폴더에 대한 명령을 프록시하도록 Git 서버 인스턴스를 구성하기 위해 실행할 수 있는 활성화 Notebook을 제공합니다. Get GitHub의 활성화 Notebook.
현재 Git 서버 프록시에는 더 이상 모든 사용자에 대해 CAN_ATTACH_TO
권한이 필요하지 않습니다. 기존 프록시 클러스터를 사용하는 관리자는 이제 이 기능을 사용하도록 클러스터 ACL 권한을 수정할 수 있습니다. 활성화하려면:
사이드바에서 SelectCompute을 찾아서 실행 중인 Git 서버 프록시에 대한 Compute 항목 옆에 있는 을 클릭합니다.
사이드바에서 컴퓨팅을 Select Git 프록시 서버 컴퓨팅 리소스 오른쪽에 케밥을 .
대화에서
항목을 모든 사용자에 대해 에 연결할 수 있습니다.
Databricks Git 폴더에 대한 Git 서버 프록시를 set 방법
이 섹션에서는 Databricks Git 폴더에 대한 Git 서버 프록시에 대한 Git 서버 인스턴스를 준비하고, 프록시를 만들고, 구성의 유효성을 검사하는 방법을 설명합니다.
시작하기 전에
프록시를 사용하도록 설정하기 전에 다음을 확인합니다.
- 작업 영역에서 Databricks Git 폴더 기능이 활성화되어 있습니다.
- Git 서버 인스턴스는 Azure Databricks 작업 영역의 컴퓨팅 평면 VPC에서 액세스할 수 있으며 HTTPS와 PAT(개인용 액세스 토큰)를 모두 사용할 수 있습니다.
참고 항목
Databricks에 대한 Git 서버 프록시는 VPC에서 지원하는 모든 지역에서 작동합니다.
1단계: Git 서버 인스턴스 준비
Important
컴퓨팅 리소스를 만들고 이 작업을 완료하려면 액세스 권한이 있는 작업 영역의 관리자여야 합니다.
Git 서버 인스턴스를 구성하려면 다음을 수행합니다.
프록시 클러스터의 드라이버 노드에 Git 서버에 대한 액세스 권한을 부여합니다.
엔터프라이즈 Git 서버에는 액세스가 허용되는 IP 주소의
allowlist
가 있을 수 있습니다.- 프록시 클러스터에서 발생하는 트래픽에 대해 정적 아웃바운드 IP 주소를 연결합니다. Azure Firewall 또는 송신 어플라이언스로 이 작업을 수행할 수 있습니다.
- 이전 단계의 IP 주소를 Git 서버의 허용 목록에 추가합니다.
Set Git 서버 인스턴스가 HTTPS 전송을 허용하도록 설정하십시오.
- GitHub Enterprise의 경우 GitHub Enterprise 도움말에서 어떤 원격 URL을 사용해야 하나요?를 참조하세요.
- Bitbucket의 경우, Bitbucket 서버 관리 페이지로 이동하여 서버 설정을 select으로 설정하십시오. HTTP(S) SCM 호스팅 섹션에서 HTTP(S) 사용됨 확인란을 활성화합니다.
2단계: 사용 Notebook 실행
웹 프록시를 사용하려면 다음을 수행합니다.
Azure Databricks 작업 영역에 액세스 권한이 있는 작업 영역 관리자로 로그인하여 클러스터를 만듭니다.
이 Notebook을 가져옵니다. 그러면 Git 프록시를 실행하기 위해 클라우드 공급자에서 사용할 수 있는 가장 작은 인스턴스 유형을 선택합니다.
Notebook: Git 폴더에서 프라이빗 Git 서버 연결을 위해 Databricks Git 폴더에 대해 Git 서버 프록시를 사용합니다.
클릭하여 모든을 실행하면 Notebook이 다음 작업을 수행합니다.
- 자동 종료되지 않는 "Databricks Git 프록시"라는 단일 노드 컴퓨팅 리소스를 만듭니다. Azure Databricks 작업 영역에서 온-프레미스 Git 서버로 Git 명령을 처리하고 전달하는 Git 프록시 서비스입니다.
- Databricks Git 폴더에서 Git 요청이 컴퓨팅 인스턴스를 통해 프록시되는지 여부를 제어하는 기능 플래그를 사용합니다.
모범 사례로 Git 프록시 컴퓨팅 리소스를 실행하는 간단한 작업을 만드는 방법을 고려합니다. "Git 프록시 서비스가 실행 중임"과 같은 상태를 인쇄하거나 기록하는 간단한 Notebook일 수 있습니다. 사용자가 Git 프록시 서비스를 항상 사용할 수 있도록 정기적인 시간 간격으로 실행할 작업을 Set.
참고 항목
프록시 소프트웨어를 호스트하기 위해 장기 실행 컴퓨팅 리소스를 추가로 실행하면 추가 DBU가 발생합니다. 비용을 최소화하기 위해 Notebook은 저렴한 노드 유형의 단일 노드 컴퓨팅 리소스를 사용하도록 프록시를 구성합니다. 그러나 요구 사항에 맞게 컴퓨팅 옵션을 수정할 수 있습니다. 컴퓨팅 인스턴스 가격 책정에 대한 자세한 내용은 Azure 가격 책정 계산기를 참조하세요.
3단계: Git 서버 구성 유효성 검사
Git 서버 구성의 유효성을 검사하려면 프록시 클러스터를 통해 프라이빗 Git 서버에서 호스트되는 리포지토리를 복제합니다. 복제가 성공하면 작업 영역에 대해 Git 서버 프록시를 사용함을 의미합니다.
4단계: 프록시 사용 Git 리포지토리 만들기
사용자가 Git credentials구성한 후에는 리포지토리를 만들거나 동기화하는 추가 단계가 필요하지 않습니다. credentials을 구성하고 Git 폴더의 리포지토리에 프로그래밍 방식으로 액세스하려면 Git 구성 credentials & Azure Databricks에 원격 리포지토리를 연결하기을 참조하세요.
전역 CAN_ATTACH_TO (설정) 권한 Remove
기존 프록시 클러스터를 사용하는 관리자는 이제 일반 공급으로 제공되는 Git 서버 프록시 동작을 활용하도록 클러스터 ACL 권한을 수정할 수 있습니다.
이전에 CAN_ATTACH_TO
권한으로 Databricks Git 서버 프록시를 구성한 경우, 다음 단계를 사용하여 해당 권한을 remove할 수 있습니다.
사이드바에서 컴퓨팅
다음 실행 중인 Git 서버 프록시에 대한 컴퓨팅 항목 옆에 있는 케밥 메뉴를 클릭합니다.Kebab 메뉴 사이드바에서 컴퓨팅을 Select Git 프록시 서버 컴퓨팅 리소스 오른쪽에 케밥을 .
대화 상자에서 remove 항목이 모든 사용자에 대한에 첨부할 수 있습니다.
문제 해결
Databricks Git 폴더에 대한 Git 서버 프록시를 구성하는 동안 오류가 발생했나요? 다음은 몇 가지 일반적인 문제 및 이 문제를 보다 효과적으로 진단하는 방법입니다.
일반적인 문제에 대한 체크리스트
오류 진단을 시작하기 전에 다음 단계를 완료했는지 확인합니다.
- Git 프록시 서버 디버그 노트북을 사용하여 프록시 클러스터가 실행 중인지 확인하세요. (Git 프록시 서버 활성화 노트북과는 다른 노트북이며, 두 노트북 모두 Databricks에서 제공합니다.)
- 작업 영역 관리자임을 확인합니다.
- 아직 실행하지 않은 경우 나머지 디버그 Notebook을 실행하고 결과를 캡처합니다. 문제를 디버그할 수 없거나 디버그 Notebook에서 보고된 오류가 표시되지 않는 경우 Databricks 지원에서 결과를 검토할 수 있습니다. 요청된 경우 디버그 노트북을 DBC 보관 파일로 내보낼 수 있습니다.
Git 프록시 구성 변경
Git 프록시 서비스가 기본 구성에서 작동하지 않는 경우 특정 환경 변수를 set 변경하여 네트워크 인프라를 더 잘 지원할 수 있습니다.
다음 환경 변수를 사용하여 Git 프록시 서비스에 대한 구성을 update.
환경 변수 | 서식 | 설명 |
---|---|---|
GIT_PROXY_ENABLE_SSL_VERIFICATION |
true /false |
자체 서명된 인증서를 개인 Git 서버에 사용하는 경우 Set을 false 로 변경하십시오. |
GIT_PROXY_CA_CERT_PATH |
파일 경로(문자열) |
Set을 SSL 검증에 사용되는 CA 인증서 파일의 경로로 설정하십시오. 예: /FileStore/myCA.pem |
GIT_PROXY_HTTP_PROXY |
https://<hostname>:<port #> |
Set을 네트워크의 HTTP 트래픽용 방화벽 프록시의 HTTPS URL에 추가하세요. |
GIT_PROXY_CUSTOM_HTTP_PORT |
포트 번호(정수) | Set을 Git 서버의 HTTP 포트에 할당된 포트 번호로 설정하십시오. |
Azure Databricks 작업 영역에서 컴퓨팅 탭으로 이동하여 Git 프록시 서비스에 대한 컴퓨팅 구성을 select하려면 이러한 환경 변수를 set하십시오.
구성 창 아래쪽에서 고급 옵션 확장하고 그 아래에 Spark 탭을 select. 이러한 환경 변수를 텍스트 영역에
Databricks 컴퓨팅 구성 페이지 where에서 Git 프록시에 대한 환경 변수를 설정합니다.
프록시 클러스터에서 로그 검사
프록시 클러스터에서 /databricks/git-proxy/git-proxy.log
의 파일에 디버깅에 유용한 로그가 포함되어 있습니다.
로그 파일은 Data-plane proxy server binding to ('', 8000)…
줄로 시작해야 합니다. 그렇지 않으면 프록시 서버가 제대로 시작되지 않았음을 의미합니다. 클러스터를 다시 시작하거나 만든 클러스터를 삭제하고 활성화 Notebook을 다시 실행합니다.
로그 파일이 이 줄로 시작하는 경우 Databricks Git 폴더에서 Git 작업으로 시작된 각 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 SLL problems
종종 특수 SSL 인증서가 필요한 리포지토리를 사용함을 나타내기도 합니다. 프록시 클러스터에서
/databricks/git-proxy/git-proxy.log
파일의 콘텐츠를 확인합니다. 인증서 유효성 검사에 실패했다고 표시되면 시스템 인증서 체인에 인증 기관 인증서를 추가해야 합니다. 먼저 루트 인증서(브라우저 또는 기타 옵션 사용)를 추출하고 DBFS에 업로드합니다. 그런 다음, Git 폴더 Git 프록시 클러스터를 편집하여GIT_PROXY_CA_CERT_PATH
환경 변수를 사용하여 루트 인증서 파일을 가리킵니다. 클러스터 환경 변수 편집에 대한 자세한 내용은 환경 변수를 참조하세요.해당 단계를 완료한 후 클러스터를 다시 시작합니다.
"누락/잘못된 Git credentials" 오류로 리포지토리 복제 실패
먼저 사용자 설정에서 Git
이 구성되었는지 확인하십시오. 다음 오류가 발생할 수 있습니다.
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.
조직에서 SAML SSO를 사용하는 경우 토큰에 권한이 부여되었는지 확인합니다(Git 서버의 PAT(개인 액세스 토큰) 관리 페이지에서 수행할 수 있음).
자주 묻는 질문
Git 프록시 서버가 실행 중인지 확인하는 가장 쉬운 방법은 무엇인가요?
Databricks에서 제공하는 Git 프록시 디버그 Notebook 가져옵니다. 로컬 컴퓨터에 다운로드한 다음 Azure Databricks 작업 영역으로 가져옵니다.
Notebook을 실행하면 Git 프록시 서비스에 대한 오류 또는 문제가 있는지 보고합니다.
Git 서버 프록시가 보안에 미치는 영향은 무엇인가요?
다음은 명심해야 할 중요한 사항입니다.
- 프록시는 Databricks 컨트롤 플레인의 보안 아키텍처에 영향을 주지 않습니다.
- 작업 영역당 하나의 Git 프록시 서버 클러스터만 보유할 수 있습니다.
공용 Git 리포지토리의 경우에도 모든 Databricks Git 폴더 관련 Git 트래픽이 프록시 클러스터를 통해 라우팅되나요?
예. 현재 릴리스에서 Azure Databricks 작업 영역은 프록시된 리포지토리와 프록시되지 않은 리포지토리를 구분하지 않습니다.
Git 프록시 기능이 다른 Git 엔터프라이즈 서버 providers에서도 작동하나요?
Databricks Git 폴더는 GitHub Enterprise, Bitbucket Server, Azure DevOps Server, GitLab 자체 관리를 지원합니다. 일반적인 Git 사양을 준수하는 경우, 다른 엔터프라이즈 Git 서버 providers도 작동해야 합니다.
Databricks Git 폴더는 커밋의 GPG 서명을 지원하나요?
아니요.
Databricks Git 폴더는 Git 작업에 대해 SSH 전송을 지원하나요?
아니요. HTTPS만 지원됩니다.
Git 서버에서 기본이 아닌 HTTPS 포트를 사용할 수 있나요?
현재 활성화 Notebook은 Git 서버가 기본 HTTPS 포트 443을 사용한다고 가정합니다. 환경 변수 set을(를) GIT_PROXY_CUSTOM_HTTP_PORT
로 설정하여 포트 값을 원하는 값으로 덮어쓸 수 있습니다.
여러 작업 영역에 대해 하나의 프록시를 공유할 수 있나요? 아니면 작업 영역당 하나의 프록시 클러스터가 필요한가요?
Azure Databricks 작업 영역당 하나의 프록시 클러스터가 필요합니다.
프록시가 레거시 단일 Notebook 버전 관리에서 작동하나요?
아니요, 프록시는 레거시 단일 Notebook 버전 관리에서 작동하지 않습니다. 사용자는 Databricks Git 폴더 버전 관리로 마이그레이션해야 합니다.
Databricks가 프록시된 Git 서버 URL을 숨길 수 있나요? 사용자가 프록시된 URL이 아닌 원래 Git 서버 URL을 입력할 수 있나요?
두 질문에 대해 모두 예입니다. 사용자는 프록시에 대한 동작을 조정할 필요가 없습니다. 현재 프록시 구현을 사용하면 Databricks Git 폴더에 대한 모든 Git 트래픽은 프록시를 통해 라우팅됩니다. 사용자는 https://git.company.com/org/repo-name.git
같은 일반 Git 리포지토리 URL을 입력합니다.
사용자가 Git URL을 얼마나 자주 사용하나요?
일반적으로 사용자는 새 리포지토리를 만들거나 아직 체크 아웃하지 않은 기존 리포지토리를 체크 아웃할 때 Git URL만 추가합니다.
이 기능은 Git 서버에 대해 인증 데이터를 투명하게 프록시하나요?
예, 프록시는 사용자 계정의 Git 서버 토큰을 사용하여 Git 서버에 인증합니다.
Git 서버 코드에 대한 Databricks 액세스 권한이 있나요?
Azure Databricks 프록시 서비스는 사용자가 제공한 자격 증명을 사용하여 Git 서버의 Git 리포지토리에 액세스하고 리포지토리의 코드 파일을 Git 폴더와 동기화합니다. 액세스는 사용자가 제공한 PAT(개인 액세스 토큰)에 지정된 권한에 의해 제한됩니다.