Terraform 계획을 사용하여 VMware Ubuntu 가상 머신을 배포하고 Azure Arc에 연결

이 문서에서는 제공된 Terraform 계획을 사용하여 Ubuntu 서버, VMware vSphere 가상 머신을 배포하고 Azure Arc 지원 서버 리소스로 연결하기 위한 지침을 제공합니다.

필수 조건

  1. Azure Arc Jumpstart 리포지토리를 복제합니다.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Azure CLI를 설치하거나 버전 2.7 이상으로 업데이트합니다. 다음 명령을 사용하여 현재 설치된 버전을 확인합니다.

    az --version
    
  3. Terraform 설치 >= 0.12

  4. vSphere 웹 클라이언트의 템플릿에서 가상 머신을 배포할 수 있는 권한이 있는 VMware vCenter Server 사용자입니다.

  5. Azure 서비스 주체를 만듭니다.

    VMware vSphere 가상 머신을 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://AzureArcServers" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    출력은 다음과 같습니다.

    {
      "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "displayName": "http://AzureArcServers",
      "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
    

    참고 항목

    서비스 주체의 범위를 특정 Azure 구독 및 리소스 그룹으로 지정하는 것이 좋습니다.

Ubuntu 서버 VMware vSphere VM 템플릿 준비

이 가이드를 사용하여 Ubuntu 서버 VM을 배포하고 Azure Arc에 연결하기 전에 VMware vSphere 템플릿이 필요합니다. 이 문서에서는 VMware vSphere 6.5 이상을 사용하여 이러한 템플릿을 쉽게 만드는 방법을 보여 줍니다.

참고 항목

Ubuntu 서버 VM 템플릿이 이미 있는 경우에도 이 가이드를 참조로 사용해야 합니다.

배포

Terraform 계획을 실행하기 전에 계획에서 사용할 환경 변수를 설정해야 합니다. 이러한 변수는 방금 만든 Azure 서비스 주체, Azure 구독 및 테넌트, VMware vSphere 자격 증명을 기반으로 합니다.

  1. az account list 명령을 사용하여 Azure 구독 ID 및 테넌트 ID를 검색합니다.

  2. Terraform 계획은 Microsoft Azure 및 VMware vSphere 모두에서 리소스를 만듭니다. 그런 다음 가상 머신에서 스크립트를 실행하여 Azure Arc 에이전트 및 필요한 모든 아티팩트를 설치합니다. 이 스크립트에는 VMware vSphere 및 Azure 환경에 관한 특정 정보가 필요합니다. scripts/vars.sh을 편집하고 각 변수를 적절한 값으로 업데이트합니다.

    • TF_VAR_subscription_id = Azure 구독 ID
    • TF_VAR_client_id = Azure 서비스 주체 이름
    • TF_VAR_client_secret = Azure 서비스 주체 암호
    • TF_VAR_tenant_id = Azure 테넌트 ID
    • TF_VAR_resourceGroup = Azure 리소스 그룹 이름
    • TF_VAR_location = Azure 지역
    • TF_VAR_vsphere_user = vCenter 관리자 사용자 이름
    • TF_VAR_vsphere_password = vCenter 관리자 암호
    • TF_VAR_vsphere_server = vCenter Server FQDN/IP
    • TF_VAR_admin_user =OS 관리자 사용자 이름
    • TF_VAR_admin_password = OS 관리자 암호
  3. CLI에서 복제된 리포지토리의 azure_arc_servers_jumpstart/vmware/ubuntu/terraform 디렉터리로 이동합니다.

  4. 아래와 같이 원본 명령을 사용하여 scripts/vars.sh를 실행하여 편집한 환경 변수를 내보냅니다. Terraform에서 플랜이 제대로 실행되려면 이 환경 변수를 설정해야 합니다. 또한 이 스크립트는 Terraform 배포의 일부로 가상 머신에서 원격으로 자동으로 실행됩니다.

    source ./scripts/vars.sh

  5. 방금 내보낸 TF_VAR 환경 변수 외에도 VMware vSphere 환경과 일치하도록 terraform.tfvars에서 Terraform 변수를 편집합니다.

    A screenshot of the TF_VAR environment variables

  6. Terraform AzureRM, 로컬 및 vSphere 공급자를 다운로드하는 terraform init 명령을 실행합니다.

    A screenshot of the terraform init command.

  7. terraform apply --auto-approve 명령을 실행하고 플랜이 완료되기를 기다립니다.

  8. Terraform 배포가 완료되면 새 Ubuntu 서버 VM이 실행되고 새로 만든 Azure 리소스 그룹에서 Azure Arc 지원 서버 리소스로 프로젝션됩니다.

    A screenshot of terraform apply completed.

    A screenshot of a new VMware vSphere Ubuntu server virtual machine.

    A screenshot of an Azure Arc-enabled server in an Azure resource group.

    Another screenshot of an Azure Arc-enabled server in an Azure resource group.

배포 삭제

  • 가장 간단한 방법은 Azure Portal을 통해 Azure Arc 리소스를 삭제하고 리소스를 선택하고 삭제하는 것입니다. 또한 VMware vSphere VM을 삭제합니다.

    A screenshot of an Azure Arc-enabled server being deleted.

    인스턴스를 수동으로 삭제하는 경우 Terraform 플랜에서 생성된 install_arc_agent.sh도 삭제해야 합니다.

  • 전체 환경을 해체하려면 아래와 같이 terraform destroy --auto-approve 명령을 사용합니다.

    A screenshot of the terraform destroy command.