특수 이미지를 사용하여 새 VM을 만드는 경우 새 VM은 원본 VM의 컴퓨터 이름을 그대로 유지합니다. CMID와 같은 기타 컴퓨터 관련 정보도 유지됩니다. 이 중복 정보는 문제를 일으킬 수 있습니다. VM을 복사할 때 애플리케이션이 어떤 유형의 컴퓨터 관련 정보에 의존하는지 알아야 합니다.
resourceGroup=myGalleryRG
gallery=myGallery
az sig image-definition list \
--resource-group $resourceGroup \
--gallery-name $gallery \
--query "[].[name, id]" \
--output tsv
이미지가 특수 이미지임을 나타내는 --specialized 매개 변수를 사용하는 az vm create를 사용하여 VM을 만듭니다.
이미지 정의 ID를 --image에 사용하여 사용 가능한 최신 버전의 이미지에서 VM을 만듭니다. 또한 --image에 대한 이미지 버전 ID를 제공하여 특정 버전에서 VM을 만들 수 있습니다.
다음 예제에서는 최신 버전의 myImageDefinition 이미지에서 VM을 만듭니다.
az group create --name myResourceGroup --location eastus
az vm create --resource-group myResourceGroup \
--name myVM \
--image "/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition" \
--specialized
특수화된 이미지 버전을 만든 후에 New-AzVM cmdlet을 사용하여 하나 이상의 새 VM을 만들 수 있습니다.
이 예제에서는 이미지 정의 ID를 사용하여 새 VM에서 최신 버전의 이미지를 사용할 수 있도록 합니다. Set-AzVMSourceImage -Id에 대한 이미지 버전 ID를 사용하여 특정 버전을 사용할 수도 있습니다. 예를 들어 이미지 버전 1.0.0 형식을 사용하려면 Set-AzVMSourceImage -Id "/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition/versions/1.0.0"을 입력합니다.
특정 이미지 버전이 지역에서 삭제 또는 제거되었기 때문에 이용할 수 없는 경우, 해당 이미지 버전을 사용하면 자동화에 실패할 수 있다는 점에 유의하세요. 특정 이미지 버전이 필요하지 않은 경우 이미지 정의 ID를 사용하여 새 VM을 만드는 것이 좋습니다.
이 예제에서 필요에 따라 리소스 이름을 바꿉니다.
# Create some variables for the new VM.
$resourceGroup = "mySIGSpecializedRG"
$location = "South Central US"
$vmName = "mySpecializedVM"
# Get the image. Replace the name of your resource group, gallery, and image definition. This will create the VM from the latest image version available.
$imageDefinition = Get-AzGalleryImageDefinition `
-GalleryName myGallery `
-ResourceGroupName myResourceGroup `
-Name myImageDefinition
# Create a resource group
New-AzResourceGroup -Name $resourceGroup -Location $location
# Create the network resources.
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
-Name mySubnet `
-AddressPrefix 192.168.1.0/24
$vnet = New-AzVirtualNetwork `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name MYvNET `
-AddressPrefix 192.168.0.0/16 `
-Subnet $subnetConfig
$pip = New-AzPublicIpAddress `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name "mypublicdns$(Get-Random)" `
-AllocationMethod Static `
-IdleTimeoutInMinutes 4
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig `
-Name myNetworkSecurityGroupRuleRDP `
-Protocol Tcp `
-Direction Inbound `
-Priority 1000 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 3389 -Access Deny
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName $resourceGroup `
-Location $location `
-Name myNetworkSecurityGroup `
-SecurityRules $nsgRuleRDP
$nic = New-AzNetworkInterface `
-Name $vmName `
-ResourceGroupName $resourceGroup `
-Location $location `
-SubnetId $vnet.Subnets[0].Id `
-PublicIpAddressId $pip.Id `
-NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration using Set-AzVMSourceImage -Id $imageDefinition.Id to use the latest available image version.
$vmConfig = New-AzVMConfig `
-VMName $vmName `
-VMSize Standard_D1_v2 | `
Set-AzVMSourceImage -Id $imageDefinition.Id | `
Add-AzVMNetworkInterface -Id $nic.Id
# Create a virtual machine
New-AzVM `
-ResourceGroupName $resourceGroup `
-Location $location `
-VM $vmConfig
이제 새 VM을 한 개 이상 만들 수 있습니다. 이 예제에서는 ‘미국 동부’ 데이터 센터에서 myResourceGroup에 myVM이라는 VM을 만듭니다.
이미지 정의로 이동합니다. 리소스 필터를 사용하여 사용 가능한 모든 이미지 정의를 표시할 수 있습니다.
이미지 정의 페이지의 맨 위에 있는 메뉴에서 VM 만들기를 선택합니다.
리소스 그룹에 대해 새로 만들기를 선택하고 myResourceGroup을 이름으로 입력합니다.
가상 머신 이름에 myVM을 입력합니다.
지역에 대해 미국 동부를 선택합니다.
가용성 옵션의 경우에는 ‘인프라 중복이 필요하지 않습니다’ 기본값을 그대로 둡니다.
이미지 정의에 대한 페이지에서 시작한 경우 이미지 값이 latest 이미지 버전으로 자동으로 채워집니다.
크기의 경우 사용 가능한 크기 목록에서 VM 크기를 고른 다음 선택을 선택합니다.
관리자 계정에서 원본 VM의 사용자 이름 및 자격 증명이 사용되므로 사용자 이름이 회색으로 표시됩니다.
VM에 대한 원격 액세스를 허용하려면 공용 인바운드 포트에서 선택한 포트 허용 을 선택한 다음, 드롭다운에서 SSH(22) 또는 RDP(3389)를 선택합니다. VM에 대한 원격 액세스를 허용하지 않으려면 퍼블릭 인바운드 포트에 대해 안 함을 선택한 상태로 둡니다.
작업을 마치면 페이지 하단의 검토 + 만들기 단추를 선택합니다.
VM이 유효성 검사를 통과하면 페이지 하단에서 만들기를 선택하여 배포를 시작합니다.
RBAC - 조직 내
갤러리가 있는 구독이 동일한 테넌트 내에 있는 경우 RBAC를 통해 공유되는 이미지를 사용하여 CLI 및 PowerShell을 사용하여 VM을 만들 수 있습니다.
사용하려는 이미지의 imageID가 필요하며 VM을 만들려는 지역에 이미지가 복제되었는지 확인합니다.
이미지가 저장된 테넌트에서 로그인하고 액세스 토큰을 가져와서 VM을 만들 테넌트에서 로그인해야 합니다. Azure에서 이미지에 대한 액세스 권한이 있음을 인증하는 방법입니다.
tenant1='<ID for tenant 1>'
tenant2='<ID for tenant 2>'
az account clear
az login --tenant $tenant1
az account get-access-token
az login --tenant $tenant2
az account get-access-token
이미지가 특수 이미지임을 나타내는 --specialized 매개 변수를 사용하는 az vm create를 사용하여 VM을 만듭니다.
imageid=""/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition""
resourcegroup="myResourceGroup"
location="West US 3"
name='myVM'
az group create --name $resourcegroup --location $location
az vm create --resource-group $resourcegroup \
--name $name \
--image $image \
--specialized
이미지가 저장된 테넌트에서 로그인하고 액세스 토큰을 가져와서 VM을 만들 테넌트에서 로그인해야 합니다. Azure에서 이미지에 대한 액세스 권한이 있음을 인증하는 방법입니다.
커뮤니티에서 제출한 가상 머신 이미지를 사용하는 경우 몇 가지 위험이 있습니다. 이미지에는 맬웨어, 보안 취약성이 포함되어 있거나 다른 사람의 지적 재산권을 침해할 수 있습니다. 커뮤니티에 대한 안전하고 신뢰할 수 있는 환경을 만들기 위해 이러한 문제가 표시되면 이미지를 보고할 수 있습니다.
커뮤니티 갤러리에서 문제를 보고하는 가장 쉬운 방법은 포털을 사용하여 보고서에 대한 정보를 미리 채우는 것입니다.
이미지 정의 필드의 링크 또는 기타 정보에 문제가 있는 경우 커뮤니티 이미지 보고를 선택합니다.
이미지 버전에 악성 코드가 포함되어 있거나 특정 버전의 이미지에 다른 문제가 있는 경우 이미지 버전 테이블의 보고 버전 열 아래에서 보고를 선택합니다.
최종 사용자로서 커뮤니티 갤러리의 공용 이름을 가져오려면 포털을 사용해야 합니다. 가상 머신>만들기>Azure 가상 머신>이미지>모든 이미지 보기>커뮤니티 이미지>공용 갤러리 이름으로 이동합니다.
az sig image-definition list-community를 사용하여 커뮤니티 갤러리에서 사용할 수 있는 모든 이미지 정의를 나열합니다. 이 예제에서는 미국 서부의 ContosoImage 갤러리에 있는 모든 이미지와 VM, OS 및 OS 상태를 만드는 데 필요한 고유 ID를 이름별로 나열합니다.
az sig image-definition list-community \
--public-gallery-name "ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f" \
--location westus \
--query [*]."{Name:name,ID:uniqueId,OS:osType,State:osState}" -o table
이미지가 특수 이미지임을 나타내는 --specialized 매개 변수를 사용하는 az vm create를 사용하여 VM을 만듭니다.
다음 예제에서는 최신 버전의 myImageDefinition 이미지에서 VM을 만듭니다.
az group create --name myResourceGroup --location eastus
az vm create --resource-group myResourceGroup \
--name myVM \
--image "/CommunityGalleries/ContosoImages-f61bb1d9-3c5a-4ad2-99b5-744030225de6/Images/LinuxSpecializedVersions/latest" \
--specialized
커뮤니티 이미지를 사용할 때 법적 약관에 동의하라는 메시지가 표시됩니다. 메시지는 다음과 같습니다.
To create the VM from community gallery image, you must accept the license agreement and privacy statement: http://contoso.com. (If you want to accept the legal terms by default, please use the option '--accept-term' when creating VM/VMSS) (Y/n):
검색에서 가상 머신을 입력합니다.
서비스에서 가상 머신을 선택합니다.
가상 머신 페이지에서 만들기를 선택한 다음, 가상 머신을 선택합니다. 가상 머신 만들기 페이지가 열립니다.
기본 탭의 프로젝트 세부 정보 아래에서 올바른 구독이 선택되어 있는지 확인한 다음, 새로 만들기 리소스 그룹을 선택하거나 드롭다운에서 하나를 선택합니다.
인스턴스 세부 정보에서 가상 머신 이름의 이름을 입력합니다.
보안 유형의 경우 표준이 선택되어 있는지 확인합니다.
이미지의 경우 모든 이미지 보기를 선택합니다. 이미지 선택 페이지가 열립니다.
왼쪽 메뉴의 기타 항목에서 Community 이미지를 선택합니다. 기타 항목 | Community 이미지 페이지가 열립니다.
목록에서 이미지를 선택합니다. OS 상태가 특수화되어 있는지 확인합니다. 특수화된 이미지를 사용하려면 일반화된 이미지 버전을 사용하여 VM 만들기를 참조하세요. 선택한 이미지에 따라 VM이 만들어지는 지역은 이미지와 일치하도록 변경됩니다.
나머지 옵션을 완료한 다음, 페이지 아래쪽에 있는 검토 + 만들기 단추를 선택합니다.
가상 머신 만들기 페이지에서 만들려는 VM의 세부 정보를 볼 수 있습니다. 준비가 되면 만들기를 선택합니다.
미리 보기 중에 sharingProfile.permissions 속성이 Groups로 설정된 새 갤러리를 만들어야 합니다. CLI를 사용하여 갤러리를 만드는 경우 --permissions groups 매개 변수를 사용합니다. 기존 갤러리를 사용할 수 없으며 현재 속성을 업데이트할 수 없습니다.
공유되는 갤러리의 uniqueID를 찾으려면 az sig list-shared를 사용합니다. 다음 예제에서는 미국 서부 지역의 갤러리를 찾고 있습니다.
region=westus
az sig list-shared --location $region --query "[].name" -o tsv
갤러리 이름을 사용하여 사용 가능한 모든 이미지를 찾습니다. 다음 예제에서는 미국 서부의 모든 이미지와 VM, OS 및 OS 상태를 만드는 데 필요한 고유 ID를 이름별로 나열합니다.
galleryName="1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-myDirectShared"
az sig image-definition list-shared \
--gallery-unique-name $galleryName \
--location $region \
--query [*]."{Name:name,ID:uniqueId,OS:osType,State:osState}" -o table
이미지의 상태가 Specialized인지 확인합니다. Generalized 상태의 이미지를 사용하려면 일반화된 이미지 버전에서 VM 만들기를 참조하세요.
이미지가 특수 이미지임을 나타내는 --specialized 매개 변수를 사용하는 az vm create를 사용하여 VM을 만듭니다.
최신 버전을 '--image'에 대한 값으로 사용하여 VM을 만들려면 /Versions/latest가 추가된 Id를 사용합니다.
다음 예제에서는 최신 버전의 myImageDefinition 이미지에서 VM을 만듭니다.
imgDef="/SharedGalleries/1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-MYDIRECTSHARED/Images/myDirectDefinition/Versions/latest"
vmResourceGroup=myResourceGroup
location=westus
vmName=myVM
az group create --name $vmResourceGroup --location $location
az vm create\
--resource-group $vmResourceGroup \
--name $vmName \
--image $imgDef \
--specialized
참고 항목
알려진 문제: Azure Portal에서 지역을 선택하고, 이미지를 선택한 다음, 지역을 변경하면 해당 지역에 이미지가 복제되더라도 "이 이미지의 복제 지역에서만 VM을 만들 수 있습니다."라는 오류 메시지가 표시됩니다. 오류를 제거하려면 다른 지역을 선택한 다음, 원하는 지역으로 다시 전환합니다. 이미지를 사용할 수 있는 경우 오류 메시지를 지워야 합니다.
또한 Azure CLI를 사용하여 공유된 이미지를 확인할 수 있습니다. 예를 들어 'az sig list-shared --location westus'를 사용하여 미국 서부 지역에서 공유되는 이미지를 확인할 수 있습니다.
검색에서 가상 머신을 입력합니다.
서비스에서 가상 머신을 선택합니다.
가상 머신 페이지에서 만들기를 선택한 다음, 가상 머신을 선택합니다. 가상 머신 만들기 페이지가 열립니다.
기본 탭의 프로젝트 세부 정보 아래에서 올바른 구독이 선택되어 있는지 확인한 다음, 새로 만들기 리소스 그룹을 선택하거나 드롭다운에서 하나를 선택합니다.
인스턴스 세부 정보에서 가상 머신 이름의 이름을 입력합니다.
보안 유형의 경우 표준이 선택되어 있는지 확인합니다.
이미지의 경우 모든 이미지 보기를 선택합니다. 이미지 선택 페이지가 열립니다.
왼쪽 메뉴의 기타 항목에서 직접 공유 이미지(미리 보기)를 선택합니다. 기타 항목 | 직접 공유 이미지(미리 보기) 페이지가 열립니다.
목록에서 이미지를 선택합니다. OS 상태가 특수화되어 있는지 확인합니다. 일반화된 이미지를 사용하려면 일반화된 이미지 버전을 사용하여 VM 만들기를 참조하세요. 선택한 이미지에 따라 VM이 만들어지는 지역이 이미지와 일치하도록 변경됩니다.
나머지 옵션을 완료한 다음, 페이지 아래쪽에 있는 검토 + 만들기 단추를 선택합니다.
가상 머신 만들기 페이지에서 만들려는 VM의 세부 정보를 볼 수 있습니다. 준비가 되면 만들기를 선택합니다.