일반화된 이미지 버전 VM 만들기
Azure Compute Gallery(이전의 공유 이미지 갤러리)에 저장된 일반화된 이미지 버전으로 VM을 만듭니다. 전문화된 이미지로 VM을 만들려면 전문화된 이미지에서 VM 만들기를 참조하세요.
이 문서에서는 다음과 같은 일반화된 이미지에서 VM을 만드는 방법을 보여줍니다.
- 사용자 고유의 갤러리에 있는 이미지
- RBAC를 사용하여 조직 내에서 공유
- RBAC를 사용하여 테넌트 간에 공유
- 커뮤니티 갤러리에서 모두에게 공유
- 구독 또는 테넌트에 직접 공유된 이미지
사용자 고유의 갤러리
az sig image-definition list를 사용하여 갤러리에서 이미지 정의를 나열하면 해당 이름과 정의의 ID를 볼 수 있습니다.
resourceGroup=myGalleryRG
gallery=myGallery
az sig image-definition list --resource-group $resourceGroup --gallery-name $gallery --query "[].[name, id]" --output tsv
az vm create를 사용하여 VM을 만듭니다. 최신 버전의 이미지를 사용하려면 --image
를 이미지 정의의 ID로 설정합니다.
아래 예는 SSH로 보호되는 Linux VM을 만들기 위한 예제입니다. Windows의 경우 또는 암호로 Linux VM을 보호하려면 암호를 입력하라는 메시지가 표시되도록 --generate-ssh-keys
를 제거합니다. 암호를 직접 제공하려는 경우 --generate-ssh-keys
를 --admin-password
로 바꿉니다. 이 예제에서 필요에 따라 리소스 이름을 바꿉니다.
imgDef="/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition"
vmResourceGroup=myResourceGroup
location=eastus
vmName=myVM
adminUsername=azureuser
az group create --name $vmResourceGroup --location $location
az vm create\
--resource-group $vmResourceGroup \
--name $vmName \
--image $imgDef \
--admin-username $adminUsername \
--generate-ssh-keys
--image
매개 변수에 대한 이미지 버전 ID를 사용하여 특정 버전을 사용할 수도 있습니다. 예를 들어 이미지 버전 1.0.0 형식을 사용하려면 --image "/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition/versions/1.0.0"
을 입력합니다.
RBAC - 조직 내에서 공유됨
갤러리가 있는 구독이 동일한 테넌트 내에 있는 경우 RBAC를 통해 공유되는 이미지를 사용하여 CLI 및 PowerShell을 사용하여 VM을 만들 수 있습니다.
사용하려는 이미지의 imageID
가 필요하며 VM을 만들려는 지역에 이미지가 복제되었는지 확인합니다.
이미지의 상태가 Generalized
인지 확인합니다. Specialized
상태의 이미지를 사용하려면 특수 이미지 버전에서 VM 만들기를 참조하세요.
imgDef="/SharedGalleries/1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-MYDIRECTSHARED/Images/myDirectDefinition/Versions/latest"
vmResourceGroup=myResourceGroup
location=westus
vmName=myVM
adminUsername=azureuser
az group create --name $vmResourceGroup --location $location
az vm create\
--resource-group $vmResourceGroup \
--name $vmName \
--image $imgDef \
--admin-username $adminUsername \
--generate-ssh-keys
RBAC - 다른 테넌트에서 공유됨
사용하려는 이미지가 동일한 테넌트(디렉터리)에 없는 갤러리에 저장된 경우 액세스 권한이 있는지 확인하려면 각 테넌트마다 로그인해야 합니다.
사용하려는 이미지의 imageID
가 필요하며 VM을 만들려는 지역에 이미지가 복제되었는지 확인합니다. 또한 원본 갤러리에 대한 tenantID
및 VM을 만들려는 tenantID
의 위치도 필요합니다.
이 예제에서는 일반화된 이미지에서 VM을 만드는 방법을 보여 드립니다. 특수화된 이미지를 사용하려면 특수화된 이미지 버전을 사용하여 VM 만들기를 참조하세요.
이미지가 저장된 테넌트에서 로그인하고 액세스 토큰을 가져와서 VM을 만들 테넌트에서 로그인해야 합니다. 이 경우 tenant1은 이미지가 저장되는 위치이며 tenant2는 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
VM을 만듭니다. 예시로 사용된 정보를 사용자의 정보로 바꿉니다. VM을 만들기 전에 VM을 만들려는 지역에 이미지가 복제되었는지 확인합니다.
imageid="<ID of the image that you want to use>"
resourcegroup="<name for the resource group>"
location="<location where the image is replicated>"
user='<username for the VM>'
name='<name for the VM>'
az group create --location $location --resource-group $resourcegroup
az vm create \
--resource-group $resourcegroup \
--name $name \
--image $imageid \
--admin-username $user \
--generate-ssh-keys
커뮤니티 갤러리
Important
Microsoft는 커뮤니티 갤러리의 이미지를 지원하지 않습니다.
커뮤니티 이미지 관련 문제 보고
커뮤니티에서 제출한 가상 머신 이미지를 사용하는 경우 몇 가지 위험이 있습니다. 이미지에는 맬웨어, 보안 취약성이 포함되어 있거나 다른 사람의 지적 재산권을 침해할 수 있습니다. 커뮤니티에 대한 안전하고 신뢰할 수 있는 환경을 만들기 위해 이러한 문제가 표시되면 이미지를 보고할 수 있습니다.
커뮤니티 갤러리에서 문제를 보고하는 가장 쉬운 방법은 포털을 사용하여 보고서에 대한 정보를 미리 채우는 것입니다.
- 이미지 정의 필드의 링크 또는 기타 정보에 문제가 있는 경우 커뮤니티 이미지 보고를 선택합니다.
- 이미지 버전에 악성 코드가 포함되어 있거나 특정 버전의 이미지에 다른 문제가 있는 경우 이미지 버전 테이블의 보고 버전 열 아래에서 보고를 선택합니다.
다음 링크를 사용하여 문제를 보고할 수도 있지만 양식은 미리 채워지지 않습니다.
커뮤니티 갤러리에 공유된 이미지를 사용하여 VM을 만들려면 다음 형식이 될 --image
에 대한 이미지의 고유 ID를 사용합니다.
/CommunityGalleries/<community gallery name, like: ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f>/Images/<image name>/Versions/latest
다음 지침에 따라 CLI를 사용하여 커뮤니티 이미지 목록을 가져옵니다.
Step 1: Show all 'Community images' in a specific location
az sig list-community --location westus2
Step 2: Once you have the public gallery name from Step 1, Get the Image definition (Name) of the image by running the following command
az sig image-definition list-community --public-gallery-name <<public gallery name>> --location westus2
Step 3: Finally, run the following command to list different image versions available for the specific image
az sig image-version list-community --public-gallery-name <<galleryname>> --gallery-image-definition <<image name>> --location westus2
포털에서 커뮤니티 갤러리의 퍼블릭 이름을 가져오려면 다음을 수행합니다. 가상 머신>만들기>Azure 가상 머신>이미지>모든 이미지 보기>커뮤니티 이미지>공용 갤러리 이름으로 이동합니다.
이 예제에서는 Linux 이미지에서 VM을 만들고 인증을 위한 SSH 키를 만듭니다.
imgDef="/CommunityGalleries/ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f>/Images/myLinuxImage/Versions/latest"
vmResourceGroup=myResourceGroup
location=eastus
vmName=myVM
adminUsername=azureuser
az group create --name $vmResourceGroup --location $location
az vm create\
--resource-group $vmResourceGroup \
--name $vmName \
--image $imgDef \
--admin-username $adminUsername \
--generate-ssh-keys
커뮤니티 이미지를 사용할 때 법적 약관에 동의하라는 메시지가 표시됩니다. 메시지는 다음과 같습니다.
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):
직접 공유 갤러리
Important
Azure Compute Gallery – 직접 공유 갤러리는 현재 미리 보기에 있으며 Azure Compute Gallery에 대한 미리 보기 사용 약관이 적용됩니다.
미리 보기 중에 이미지를 직접 공유 갤러리에 게시하려면 https://aka.ms/directsharedgallery-preview에서 등록해야 합니다. 직접 공유 갤러리에서 VM을 만드는 것은 모든 Azure 사용자에게 공개되어 있습니다.
미리 보기 중에 sharingProfile.permissions
속성이 Groups
로 설정된 새 갤러리를 만들어야 합니다. CLI를 사용하여 갤러리를 만드는 경우 --permissions groups
매개 변수를 사용합니다. 기존 갤러리를 사용할 수 없으며 현재 속성을 업데이트할 수 없습니다.
구독 또는 테넌트에 공유된 이미지를 사용하여 VM을 만들려면 다음 형식의 이미지 고유 ID가 필요합니다.
/SharedGalleries/<uniqueID>/Images/<image name>/Versions/latest
공유되는 갤러리의 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
이미지의 상태가 Generalized
인지 확인합니다. Specialized
상태의 이미지를 사용하려면 특수 이미지 버전에서 VM 만들기를 참조하세요.
최신 버전을 --image
에 대한 값으로 사용하여 VM을 만들려면 /Versions/latest
가 추가된 출력의 Id
를 사용합니다. 다음 예제에서는 직접 공유되는 Linux 이미지에서 VM을 만들고 인증을 위한 SSH 키를 만듭니다.
imgDef="/SharedGalleries/1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f-MYDIRECTSHARED/Images/myDirectDefinition/Versions/latest"
vmResourceGroup=myResourceGroup
location=westus
vmName=myVM
adminUsername=azureuser
az group create --name $vmResourceGroup --location $location
az vm create\
--resource-group $vmResourceGroup \
--name $vmName \
--image $imgDef \
--admin-username $adminUsername \
--generate-ssh-keys