Terraform 계획을 사용하여 Google Cloud Platform Ubuntu 인스턴스 배포 및 Azure Arc에 연결
이 문서에서는 제공된 Terraform 계획을 사용하여 GCP(Google Cloud Platform) 인스턴스를 배포하고 Azure Arc 지원 서버 리소스로 연결하기 위한 지침을 제공합니다.
필수 조건
Azure Arc Jumpstart 리포지토리를 복제합니다.
git clone https://github.com/microsoft/azure_arc.git
Azure CLI를 설치하거나 버전 2.7 이상으로 업데이트합니다. 다음 명령을 사용하여 현재 설치된 버전을 확인합니다.
az --version
SSH 키 생성(또는 기존 SSH 키 사용)
Azure 서비스 주체를 만듭니다.
GCP 가상 머신을 Azure Arc에 연결하려면 기여자 역할이 할당된 Azure 서비스 주체가 필요합니다. 이를 만들려면 Azure 계정에 로그인하고 다음 명령을 실행합니다. Azure Cloud Shell에서 이 명령을 실행할 수도 있습니다.
az login az account set -s <Your Subscription ID> az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor --scopes "/subscriptions/<Your Subscription ID>"
예시:
az ad sp create-for-rbac -n "http://AzureArcGCP" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
출력은 다음과 같습니다.
{ "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "displayName": "http://AzureArcGCP", "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
참고 항목
서비스 주체의 범위를 특정 Azure 구독 및 리소스 그룹으로 지정하는 것이 좋습니다.
새 GCP 프로젝트 만들기
Google API 콘솔로 이동하여 Google 계정으로 로그인합니다. 로그인한 다음
Azure Arc demo
라는 이름의 새 프로젝트를 만듭니다. 만든 후 프로젝트 ID는 일반적으로 프로젝트 이름과 다르기 때문에 프로젝트 ID를 복사해야 합니다.페이지 맨 위에 있는 드롭다운 목록에서 새 프로젝트를 만들고 선택하면 프로젝트에 대한 컴퓨팅 엔진 API 액세스를 활성화해야 합니다. + API 및 서비스 사용을 클릭하고 컴퓨팅 엔진을 검색합니다. 그런 다음 사용을 선택하여 API 액세스를 사용하도록 설정합니다.
다음으로, Terraform이 GCP 프로젝트에서 리소스를 만들고 관리하는 데 사용할 서비스 계정 키를 설정합니다. 서비스 계정 키 만들기 페이지로 이동합니다. 드롭다운 목록에서 새 서비스 계정을 선택하고 이름을 지정한 다음, 프로젝트에서 소유자를 역할로 선택하고 JSON을 키 유형으로 선택한 다음, 만들기를 선택합니다. 그러면 Terraform이 리소스를 관리하는 데 필요한 모든 자격 증명이 포함된 JSON 파일이 다운로드됩니다. 다운로드한 JSON 파일을
azure_arc_servers_jumpstart/gcp/ubuntu/terraform
디렉터리에 복사합니다.마지막으로
~/.ssh
에서 SSH 키를 사용할 수 있고id_rsa.pub
및id_rsa
의 이름을 지정했는지 확인합니다. 위의ssh-keygen
가이드에 따라 키를 만든 경우 이미 올바르게 설정되었어야 합니다. 그렇지 않은 경우 다른 경로의 키를 사용하도록main.tf
로 수정해야 할 수 있습니다.
배포
Terraform 계획을 실행하기 전에 계획에서 사용할 환경 변수를 내보내야 합니다. 이러한 변수는 방금 만든 Azure 서비스 주체, Azure 구독 및 테넌트, GCP 프로젝트 이름을 기반으로 합니다.
az account list
명령을 사용하여 Azure 구독 ID 및 테넌트 ID를 검색합니다.Terraform 계획은 Microsoft Azure 및 Google Cloud Platform 모두에서 리소스를 만듭니다. 그런 다음 GCP 가상 머신에서 스크립트를 실행하여 Azure Arc 에이전트 및 필요한 모든 아티팩트 설치합니다. 이 스크립트에는 GCP 및 Azure 환경에 대한 특정 정보가 필요합니다.
scripts/vars.sh
을 편집하고 각 변수를 적절한 값으로 업데이트합니다.TF_VAR_subscription_id
= Azure 구독 IDTF_VAR_client_id
= Azure 서비스 주체 애플리케이션 IDTF_VAR_client_secret
= Azure 서비스 주체 암호TF_VAR_tenant_id
= Azure 테넌트 IDTF_VAR_gcp_project_id
= GCP 프로젝트 IDTF_VAR_gcp_credentials_filename
= GCP 자격 증명 JSON 파일 이름
CLI에서 복제된 리포지토리의
azure_arc_servers_jumpstart/gcp/ubuntu/terraform
디렉터리로 이동합니다.아래와 같이 원본 명령을 사용하여
scripts/vars.sh
를 실행하여 편집한 환경 변수를 내보냅니다. Terraform에서 플랜이 제대로 실행되려면 이 환경 변수를 설정해야 합니다. 또한 이 스크립트는 Terraform 배포의 일부로 GCP 가상 머신에서 원격으로 자동으로 실행됩니다.source ./scripts/vars.sh
Terraform AzureRM 공급자를 다운로드하는
terraform init
명령을 실행합니다.다음으로,
terraform apply --auto-approve
명령을 실행하고 계획이 완료되기를 기다립니다. 완료되면 GCP Ubuntu VM이 배포되고 새 리소스 그룹 내에서 새 Azure Arc 지원 서버로 연결됩니다.Azure Portal을 열고
arc-gcp-demo
리소스 그룹으로 이동합니다. GCP에서 만든 가상 머신은 리소스로 표시됩니다.
반자동 배포(선택 사항)
알고 계신 것처럼 실행의 마지막 단계는 VM을 새 Azure Arc 지원 서버 리소스로 등록하는 것입니다.
실제 등록 프로세스를 데모/제어하려면 다음을 수행합니다.
install_arc_agent.sh.tmpl
스크립트 템플릿에서run connect command
섹션을 주석으로 처리하고 파일을 저장합니다.terraform output
을 실행하여 GCP VM의 공용 IP를 가져옵니다.ssh arcadmin@xx.xx.xx.xx
를 사용하여 VM을 SSH합니다. 여기서xx.xx.xx.xx
는 호스트 IP입니다.vars.sh
에서 모든 환경 변수 내보내기다음 명령을 실행합니다.
azcmagent connect --service-principal-id $TF_VAR_client_id --service-principal-secret $TF_VAR_client_secret --resource-group "Azure Arc gcp-demo" --tenant-id $TF_VAR_tenant_id --location "westus2" --subscription-id $TF_VAR_subscription_id
완료되면 VM이 Azure Arc에 등록되고 Azure Portal을 통해 리소스 그룹에 표시됩니다.
배포 삭제
이 데모의 일부로 만든 모든 리소스를 삭제하려면 아래와 같이 terraform destroy --auto-approve
명령을 사용합니다.
또는 GCP 콘솔에서 직접 GCP VM을 삭제할 수 있습니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기