Vagrant에서 호스팅하는 로컬 Windows Server 인스턴스를 배포 하 고 Azure Arc에 연결Deploy a local Windows Server instance hosted by Vagrant and connect it to Azure Arc

다음 문서에서는 Vagrant 를 사용 하 여 로컬 Windows 10 가상 머신을 배포 하 고 Azure Arc 사용 서버 리소스로 연결 하는 지침을 제공 합니다.The following article provides guidance for deploying a local Windows 10 virtual machine using Vagrant and connect it as an Azure Arc enabled server resource.

필수 조건Prerequisites

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

    git clone https://github.com/microsoft/azure_arc.git
    
  2. 2.7 이상 버전에 Azure CLI를 설치 하거나 업데이트합니다.Install or update Azure CLI to version 2.7 and above. 다음 명령을 사용 하 여 현재 설치 된 버전을 확인 합니다.Use the following command to check your current installed version.

    az --version
    
  3. Vagrant는 기본 하이퍼바이저에 의존 합니다.Vagrant relies on an underlying hypervisor. 이 가이드에서는 Oracle VM VirtualBox를 사용 합니다.For this guide, we will be using Oracle VM VirtualBox.

    1. Virtualbox를 설치 합니다.Install VirtualBox.

      • MacOS 사용자 인 경우 다음을 실행 합니다. brew cask install virtualboxIf you are an macOS user, run brew cask install virtualbox
      • Windows 사용자 인 경우 Chocolatey 패키지 를 사용할 수 있습니다.If you are a Windows user, you can use the Chocolatey package
      • Linux 사용자는 모든 패키지 설치 방법을 여기 에서 찾을 수 있습니다.If you are a Linux user, all package installation methods can be found here
    2. Vagrant 설치Install Vagrant

      • MacOS 사용자 인 경우 다음을 실행 합니다. brew cask install vagrantIf you are an macOS user, run brew cask install vagrant
      • Windows 사용자 인 경우 Chocolatey 패키지 를 사용할 수 있습니다.If you are a Windows user, you can use the Chocolatey package
      • Linux 사용자 인 경우 여기를 확인 하세요 .If you are a Linux user, look here
  4. Azure 서비스 주체를 만듭니다.Create an Azure service principal.

    Vagrant 가상 머신을 Azure Arc에 연결 하려면 참가자 역할을 사용 하 여 할당 된 Azure 서비스 주체가 필요 합니다.To connect the Vagrant virtual machine to Azure Arc, an Azure service principal assigned with the Contributor role is required. 이를 만들려면 Azure 계정에 로그인 하 고 다음 명령을 실행 합니다.To create it, sign in to your Azure account and run the following command. Azure Cloud Shell에서이 명령을 실행할 수도 있습니다.You can also run this command in Azure Cloud Shell.

    az login
    az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor
    

    예를 들면 다음과 같습니다.For example:

    az ad sp create-for-rbac -n "http://AzureArcServers" --role contributor
    

    출력은 다음과 같습니다.Output should look like this:

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

    참고

    서비스 주체를 특정 Azure 구독 및 리소스 그룹으로 범위를 지정 하는 것이 좋습니다.We highly recommend that you scope the service principal to a specific Azure subscription and resource group.

  • Vagrantfile는 VM OS에서 스크립트를 실행 하 여 필요한 모든 아티팩트를 설치 하 고 환경 변수를 삽입 합니다.The vagrantfile executes a script on the VM OS to install all the needed artifacts and to inject environment variables. scripts/vars.ps1만든 Azure 서비스 사용자와 일치 하도록 PowerShell 스크립트를 편집 합니다.Edit the scripts/vars.ps1 PowerShell script to match the Azure service principal you created.

    • subscriptionId = Azure 구독 IDsubscriptionId = Your Azure subscription ID
    • appId = Azure 서비스 사용자 이름appId = Your Azure service principal name
    • password = Azure 서비스 주체 암호password = Your Azure service principal password
    • tenantId = Azure 테 넌 트 IDtenantId = Your Azure tenant ID
    • resourceGroup = Azure 리소스 그룹 이름resourceGroup = Azure resource group name
    • location = Azure 지역location = Azure region

배포Deployment

Vagrant 배포와 마찬가지로 vagrantfileVagrant 상자가 필요 합니다.Like any Vagrant deployment, a vagrantfile and a Vagrant box is needed. 높은 수준에서 배포는 다음을 수행 합니다.At a high level, the deployment will:

  • Windows 10 이미지 파일 Vagrant 상자 를 다운로드 합니다.Download the Windows 10 image file Vagrant box
  • Azure Arc 설치 스크립트를 실행 합니다.Execute the Azure Arc installation script

scripts/vars.ps1사용자 환경에 맞게 스크립트를 편집한 후 Vagrantfile 폴더에서를 실행 vagrant up 합니다.After editing the scripts/vars.ps1 script to match your environment, from the Vagrantfile folder, run vagrant up. VM을 처음 만들 때 첫 번째 실행은 다음에 나오는 실행 속도 보다 훨씬 느립니다 .As this is the first time you are creating the VM, the first run will be much slower than the ones to follow. 이는 배포가 처음으로 Windows 10 box를 다운로드 하기 때문입니다.This is because the deployment is downloading the Windows 10 box for the first time.

' Vagrant up ' 명령을 실행 하는 스크린샷

다운로드가 완료 되 면 실제 프로 비전이 시작 됩니다.Once the download is complete, the actual provisioning will start. 다음 스크린샷에 표시 된 것 처럼 프로세스는 7 ~ 10 분 정도 걸릴 수 있습니다.As shown in the following screenshot, the process takes can take somewhere between 7 to 10 minutes.

완료 된 ' vagrant up ' 명령의 스크린샷

완료 되 면 새 리소스 그룹 내에 새 Azure Arc 사용 서버에 연결 된 로컬 Windows 10 VM이 배포 됩니다.Upon completion, you will have a local Windows 10 VM deployed, connected as a new Azure Arc enabled server inside a new resource group.

Azure Portal에서 Azure Arc 사용 서버에 대 한 스크린샷

Azure Portal에서 Azure Arc 사용 서버에 대 한 세부 정보의 스크린샷

반 자동화 된 배포 (선택 사항)Semi-automated deployment (optional)

실행의 마지막 단계는 새 Azure Arc 사용 서버 리소스로 VM을 등록 하는 것입니다.The last step of the run is to register the VM as a new Azure Arc enabled server resource.

완료 된 ' vagrant up ' 명령의 또 다른 스크린샷

실제 등록 프로세스를 데모/제어 하려면 다음을 수행 합니다.If you want to demo/control the actual registration process, do the following:

  1. install_arc_agentPowerShell 스크립트에서 섹션을 주석으로 처리 run connect command 하 고 파일을 저장 합니다.In the install_arc_agent PowerShell script, comment out the run connect command section and save the file. 리소스 그룹 만들기를 주석으로 처리 하거나 변경할 수도 있습니다.You can also comment out or change the creation of the resource group.

    ' Install_arc_agent ' PowerShell 스크립트의 스크린샷

    ' Az group create ' 명령의 스크린샷

  2. 명령을 사용 하 여 VM을 RDP 합니다 vagrant rdp .RDP the VM using the vagrant rdp command. vagrant/vagrant사용자 이름/암호로 사용 합니다.Use vagrant/vagrant as the username/password.

    Microsoft 원격 데스크톱 프로토콜을 사용 하 여 Vagrant 서버에 액세스 하는 스크린샷

  3. 관리자 권한으로 PowerShell ISE를 열고 C:\runtime\vars.ps1 사용자 환경 변수를 사용 하 여 파일을 편집 합니다.Open PowerShell ISE as Administrator and edit the C:\runtime\vars.ps1 file with your environment variables.

    Windows PowerShell ISE의 스크린샷

  4. 명령 Invoke-Expression C:\runtime\vars.ps1 , az group create --location $env:location --name $env:resourceGroup --subscription $env:subscriptionId 명령 및 azcmagent connect 스크립트를 실행 한 다음 명령을 실행 합니다.Paste the Invoke-Expression C:\runtime\vars.ps1 command, the az group create --location $env:location --name $env:resourceGroup --subscription $env:subscriptionId command and the same azcmagent connect command you out and execute the script.

    스크립트를 실행 하는 PowerShell ISE의 스크린샷

배포 삭제Delete the deployment

전체 배포를 삭제 하려면 vagrant destroy -f 명령을 실행 합니다.To delete the entire deployment, run the vagrant destroy -f command. Vagrantfile에는 before: destroy 실제 VM을 삭제 하기 전에 명령을 실행 하 여 Azure 리소스 그룹을 삭제 하는 Vagrant 트리거가 포함 되어 있습니다.The vagrantfile includes a before: destroy Vagrant trigger that runs the command to delete the Azure resource group before destroying the actual VM.

' Vagrant 제거 ' 명령의 스크린샷