가상 머신 또는 VHD의 이미지를 만드는 방법How to create an image of a virtual machine or VHD

Azure에서 사용할 VM(가상 머신)의 복사본을 여러 개 만들려면 VM 또는 OS VHD의 이미지를 캡처합니다.To create multiple copies of a virtual machine (VM) for use in Azure, capture an image of the VM or of the OS VHD. 배포에 대한 이미지를 만들려면 개인 계정 정보를 제거해야 합니다.To create an image for deployment, you'll need to remove personal account information. 다음 단계에서는 기존 VM의 프로비전을 해제하고, 할당을 취소하고, 이미지를 만듭니다.In the following steps, you deprovision an existing VM, deallocate it and create an image. 이 이미지를 사용하여 구독 내의 모든 리소스 그룹에서 VM을 만들 수 있습니다.You can use this image to create VMs across any resource group within your subscription.

백업 또는 디버깅을 위해 기존 Linux VM의 복사본을 만들거나 온-프레미스 VM에서 특수한 Linux VHD를 업로드하려면 사용자 지정 디스크 이미지에서 Linux VM 업로드 및 만들기를 참조하세요.To create a copy of your existing Linux VM for backup or debugging, or to upload a specialized Linux VHD from an on-premises VM, see Upload and create a Linux VM from custom disk image.

Packer를 사용하여 사용자 지정 구성을 만들 수도 있습니다.You can also use Packer to create your custom configuration. 자세한 내용은 Azure에서 Packer를 사용하여 Linux 가상 머신 이미지를 만드는 방법을 참조하세요.For more information, see How to use Packer to create Linux virtual machine images in Azure.

이미지를 만들려면 다음 항목이 필요합니다.You'll need the following items before creating an image:

  • 관리 디스크를 사용하여 Resource Manager 배포 모델에서 만든 Azure VM.An Azure VM created in the Resource Manager deployment model that uses managed disks. Linux VM을 만들지 않은 경우 포털, Azure CLI 또는 Resource Manager 템플릿을 사용할 수 있습니다.If you haven't yet created a Linux VM, you can use the portal, the Azure CLI, or Resource Manager templates. 필요에 따라 VM을 구성합니다.Configure the VM as needed. 예를 들어 데이터 디스크를 추가하고, 업데이트를 적용하고, 응용 프로그램을 설치합니다.For example, add data disks, apply updates, and install applications.

  • 최신 Azure CLI를 설치하고 az login을 사용하여 Azure 계정에 로그인해야 합니다.The latest Azure CLI installed and be logged in to an Azure account with az login.

빠른 명령Quick commands

이 문서에 대한 간소화된 버전 및 Azure의 VM에 대한 테스트, 평가 또는 학습에 대해 알아보려면 CLI를 사용하여 Azure VM의 사용자 지정 이미지 만들기를 참조하세요.For a simplified version of this article, and for testing, evaluating, or learning about VMs in Azure, see Create a custom image of an Azure VM by using the CLI.

1단계: VM 프로비전 해제Step 1: Deprovision the VM

Azure VM 에이전트를 사용하여 VM의 프로비전을 해제하여 머신별 파일 및 데이터를 삭제합니다.First you'll deprovision the VM by using the Azure VM agent to delete machine-specific files and data. 원본 Linux VM에서 -deprovision+user 매개 변수와 함께 waagent 명령을 사용합니다.Use the waagent command with the -deprovision+user parameter on your source Linux VM. 자세한 내용은 Azure Linux 에이전트 사용자 가이드를 참조하세요.For more information, see the Azure Linux Agent user guide.

  1. SSH 클라이언트를 사용하여 Linux VM에 연결합니다.Connect to your Linux VM with an SSH client.
  2. SSH 창에서 다음 명령을 입력합니다.In the SSH window, enter the following command:

    sudo waagent -deprovision+user
    

    참고

    이미지로 캡처하려는 VM에서만 이 명령을 실행합니다.Only run this command on a VM that you'll capture as an image. 이 명령이 이미지에서 중요한 정보가 모두 지워졌다거나 재배포에 적합하다는 것을 보장하지는 않습니다.This command does not guarantee that the image is cleared of all sensitive information or is suitable for redistribution. 또한 +user 매개 변수는 마지막 프로비전된 사용자 계정을 제거합니다.The +user parameter also removes the last provisioned user account. VM에 사용자 계정 자격 증명을 유지하려면 -deprovision만 사용합니다.To keep user account credentials in the VM, use only -deprovision.

  3. 계속하려면 y를 입력합니다.Enter y to continue. -force 매개 변수를 추가하여 이 확인 단계를 피할 수 있습니다.You can add the -force parameter to avoid this confirmation step.

  4. 명령이 완료되면 종료를 입력하여 SSH 클라이언트를 닫습니다.After the command completes, enter exit to close the SSH client.

2단계: VM 이미지 만들기Step 2: Create VM image

Azure CLI를 사용하여 VM을 일반화된 항목으로 표시하고 이미지를 캡처합니다.Use the Azure CLI to mark the VM as generalized and capture the image. 다음 예제에서 매개 변수 이름을 고유한 값으로 바꿉니다.In the following examples, replace example parameter names with your own values. 예제 매개 변수 이름에는 myResourceGroup, myVnet, myVM이 포함됩니다.Example parameter names include myResourceGroup, myVnet, and myVM.

  1. az vm deallocate로 프로비전 해제한 VM의 할당을 취소합니다.Deallocate the VM that you deprovisioned with az vm deallocate. 다음 예제에서는 리소스 그룹 myResourceGroup에서 myVM이라는 VM의 할당을 취소합니다.The following example deallocates the VM named myVM in the resource group named myResourceGroup.

    az vm deallocate \
      --resource-group myResourceGroup \
      --name myVM
    
  2. az vm generalize를 사용하여 VM을 일반화된 항목으로 표시합니다.Mark the VM as generalized with az vm generalize. 다음 예제에서는 리소스 그룹 myResourceGroup에서 myVM이라는 VM을 일반화된 항목으로 표시합니다.The following example marks the VM named myVM in the resource group named myResourceGroup as generalized.

    az vm generalize \
      --resource-group myResourceGroup \
      --name myVM
    
  3. 이제 az image create로 VM 리소스의 이미지를 만듭니다.Create an image of the VM resource with az image create. 다음 예제에서는 myVM이라는 VM 리소스를 사용하여 myResourceGroup이라는 리소스 그룹에서 myImage라는 이미지를 만듭니다.The following example creates an image named myImage in the resource group named myResourceGroup using the VM resource named myVM.

    az image create \
      --resource-group myResourceGroup \
      --name myImage --source myVM
    

    참고

    이미지는 원본 VM과 동일한 리소스 그룹에 만들어집니다.The image is created in the same resource group as your source VM. 이 이미지에서 구독 내의 모든 리소스 그룹에 VM을 만들 수 있습니다.You can create VMs in any resource group within your subscription from this image. 관리 측면에서 VM 리소스 및 이미지에 대한 특정 리소스 그룹을 만들 수도 있습니다.From a management perspective, you may wish to create a specific resource group for your VM resources and images.

    이미지를 영역 중복 저장소에 저장하려는 경우 가용성 영역을 지원하고 --zone-resilient true 매개 변수를 포함하는 지역에 만들어야 합니다.If you would like to store your image in zone-resilient storage, you need to create it in a region that supports availability zones and include the --zone-resilient true parameter.

3단계: 캡처한 이미지로부터 새 VM 만들기Step 3: Create a VM from the captured image

az vm create로 만든 이미지를 사용하여 VM을 만듭니다.Create a VM by using the image you created with az vm create. 다음 예제에서는 myImage라는 이미지에서 myVMDeployed라는 VM을 만듭니다.The following example creates a VM named myVMDeployed from the image named myImage.

az vm create \
   --resource-group myResourceGroup \
   --name myVMDeployed \
   --image myImage\
   --admin-username azureuser \
   --ssh-key-value ~/.ssh/id_rsa.pub

다른 리소스 그룹에서 VM 만들기Creating the VM in another resource group

구독 내 모든 리소스 그룹의 이미지에서 VM을 만들 수 있습니다.You can create VMs from an image in any resource group within your subscription. 이미지와 다른 리소스 그룹에 VM을 만들려면 이미지에 완전한 리소스 ID를 지정합니다.To create a VM in a different resource group than the image, specify the full resource ID to your image. az image list를 사용하여 이미지 목록을 봅니다.Use az image list to view a list of images. 다음 예제와 유사하게 출력됩니다.The output is similar to the following example.

"id": "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/images/myImage",
   "location": "westus",
   "name": "myImage",

다음 예제에서는 이미지 리소스 ID를 지정하여 원본 이미지가 아닌 리소스 그룹에 VM을 만드는 az vm create를 사용합니다.The following example uses az vm create to create a VM in a resource group other than the source image, by specifying the image resource ID.

az vm create \
   --resource-group myOtherResourceGroup \
   --name myOtherVMDeployed \
   --image "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/images/myImage" \
   --admin-username azureuser \
   --ssh-key-value ~/.ssh/id_rsa.pub

4단계: 배포 확인Step 4: Verify the deployment

생성한 가상 머신에 SSH를 실행하여 배포를 확인하고 새 VM 사용을 시작합니다.SSH into the virtual machine you created to verify the deployment and start using the new VM. SSH를 통해 연결하려면 az vm show로 VM의 IP 주소 또는 FQDN을 찾습니다.To connect via SSH, find the IP address or FQDN of your VM with az vm show.

az vm show \
   --resource-group myResourceGroup \
   --name myVMDeployed \
   --show-details

다음 단계Next steps

원본 VM 이미지에서 여러 VM을 만들 수 있습니다.You can create multiple VMs from your source VM image. 이미지를 변경하려면:To make changes to your image:

  • 사용자 이미지에서 VM을 만듭니다.Create a VM from your image.
  • 모든 업데이트 또는 구성 변경 내용을 확인합니다.Make any updates or configuration changes.
  • 단계에 따라 이미지를 다시 프로비전 해제, 할당 취소, 일반화하고 만듭니다.Follow the steps again to deprovision, deallocate, generalize, and create an image.
  • 향후 배포에서 이 새로운 이미지를 사용합니다.Use this new image for future deployments. 원본 이미지를 삭제할 수도 있습니다.You may delete the original image.

CLI를 사용하여 VM을 관리하는 방법에 대한 자세한 내용은 Azure CLI를 참조하세요.For more information on managing your VMs with the CLI, see Azure CLI.