Görüntü oluştururken Azure Market satın alma planı bilgilerini sağlama
Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri ✔️ Tekdüzen ölçek kümeleri
paylaşılan bir galeride Azure Market görüntü kaynağı kullanarak görüntü oluşturuyorsanız, satın alma planı bilgilerini izlemeniz gerekebilir. Bu makalede, görüntü tanımı oluştururken vm için satın alma planı bilgilerini nasıl bulacağınız gösterilmektedir. Ayrıca, bir görüntü için VM oluştururken satın alma planı bilgilerini sağlamayı basitleştirmek için bu bilgileri kullanmayı da ele alacağız.
Market görüntülerini bulma ve kullanma hakkında daha fazla bilgi için bkz. Azure Market görüntüleri bulma ve kullanma.
Kaynak VM bilgilerini alma
Özgün VM'niz hala varsa, Get-AzVM kullanarak plan adını, yayımcısını ve ürün bilgilerini alabilirsiniz. Bu örnek, myResourceGroup kaynak grubunda myVM adlı bir VM alır ve vm için satın alma planı bilgilerini görüntüler.
$vm = Get-azvm `
-ResourceGroupName myResourceGroup `
-Name myVM
$vm.Plan
Görüntü tanımını oluşturma
Görüntüyü depolamak için kullanmak istediğiniz galeriyi alın. Önce tüm galerileri listeleyebilirsiniz.
Get-AzResource -ResourceType Microsoft.Compute/galleries | Format-Table
Ardından, kullanmak istediğiniz galeri için değişkenler oluşturun. Bu örnekte, myGalleryRG kaynak grubunda myGallery adlı bir değişken $gallery
oluşturuyoruz.
$gallery = Get-AzGallery `
-Name myGallery `
-ResourceGroupName myGalleryRG
, -PurchasePlanProduct
ve -PurchasePlanName
parametrelerini kullanarak -PurchasePlanPublisher
görüntü tanımını oluşturun.
$imageDefinition = New-AzGalleryImageDefinition `
-GalleryName $gallery.Name `
-ResourceGroupName $gallery.ResourceGroupName `
-Location $gallery.Location `
-Name 'myImageDefinition' `
-OsState specialized `
-OsType Linux `
-Publisher 'myPublisher' `
-Offer 'myOffer' `
-Sku 'mySKU' `
-PurchasePlanPublisher $vm.Plan.Publisher `
-PurchasePlanProduct $vm.Plan.Product `
-PurchasePlanName $vm.Plan.Name
Ardından New-AzGalleryImageVersion kullanarak görüntü sürümünüzü oluşturun.
Sanal makineyi oluşturma
Görüntüden vm oluşturmaya gittiğinizde, Set-AzVMPlan kullanarak yayımcı bilgilerini geçirmek için görüntü tanımındaki bilgileri kullanabilirsiniz.
# Create some variables for the new VM.
$resourceGroup = "mySIGPubVM"
$location = "West Central US"
$vmName = "mySIGPubVM"
# 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. Set-AZVMPlan is used to pass the plan information in for the VM.
$vmConfig = New-AzVMConfig `
-VMName $vmName `
-VMSize Standard_D1_v2 | `
Set-AzVMSourceImage -Id $imageDefinition.Id | `
Set-AzVMPlan `
-Publisher $imageDefinition.PurchasePlan.Publisher `
-Product $imageDefinition.PurchasePlan.Product `
-Name $imageDefinition.PurchasePlan.Name | `
Add-AzVMNetworkInterface -Id $nic.Id
# Create the virtual machine
New-AzVM `
-ResourceGroupName $resourceGroup `
-Location $location `
-VM $vmConfig
# Create VM using Plan information through JSON
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"adminUsername": {
"type": "string",
"metadata": {
"description": "Username for the Virtual Machine."
}
},
"adminPassword": {
"type": "securestring",
"metadata": {
"description": "Password for the Virtual Machine."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"variables": {
"nicName": "myVMNic",
"addressPrefix": "10.0.0.0/16",
"subnetName": "Subnet",
"subnetPrefix": "10.0.0.0/24",
"subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), variables('subnetName'))]",
"vmName": "perflabwin10",
"virtualNetworkName": "MyVNET",
"publicIPAddressName": "myPublicIP",
"dnsNameForPublicIP": "[uniqueString(resourceGroup().id)]",
"networkSecurityGroupName": "default-NSG"
},
"resources": [
{
"apiVersion": "2017-06-01",
"type": "Microsoft.Network/publicIPAddresses",
"name": "[variables('publicIPAddressName')]",
"location": "[parameters('location')]",
"properties": {
"publicIPAllocationMethod": "Dynamic",
"dnsSettings": {
"domainNameLabel": "[variables('dnsNameForPublicIP')]"
}
}
},
{
"comments": "Default Network Security Group for template",
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2019-08-01",
"name": "[variables('networkSecurityGroupName')]",
"location": "[parameters('location')]",
"properties": {
"securityRules": [
{
"name": "default-allow-3389",
"properties": {
"priority": 1000,
"access": "Allow",
"direction": "Inbound",
"destinationPortRange": "3389",
"protocol": "Tcp",
"sourceAddressPrefix": "*",
"sourcePortRange": "*",
"destinationAddressPrefix": "*"
}
}
]
}
},
{
"apiVersion": "2018-04-01",
"type": "Microsoft.Network/virtualNetworks",
"name": "[variables('virtualNetworkName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
],
"properties": {
"addressSpace": {
"addressPrefixes": [
"[variables('addressPrefix')]"
]
},
"subnets": [
{
"name": "[variables('subnetName')]",
"properties": {
"addressPrefix": "[variables('subnetPrefix')]",
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('networkSecurityGroupName'))]"
}
}
}
]
}
},
{
"apiVersion": "2018-04-01",
"type": "Microsoft.Network/networkInterfaces",
"name": "[variables('nicName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[variables('publicIPAddressName')]",
"[variables('virtualNetworkName')]"
],
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]"
},
"subnet": {
"id": "[variables('subnetRef')]"
}
}
}
]
}
},
{
"apiVersion": "2018-04-01",
"type": "Microsoft.Compute/virtualMachines",
"name": "[variables('vmName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[variables('nicName')]"
],
"plan": {
"name": "xxxx",
"publisher": "xxxx",
"product": "xxxx"
},
"properties": {
"hardwareProfile": {
"vmSize": "Standard_D4s_v3"
},
"osProfile": {
"computerName": "[variables('vmName')]",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]"
},
"storageProfile": {
"imageReference": {
"id": "<Provide Image URI>"
},
"osDisk": {
"createOption": "FromImage"
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]"
}
]
}
}
}
]
}
Sonraki adımlar
Market görüntülerini bulma ve kullanma hakkında daha fazla bilgi için bkz. Azure Market görüntüleri bulma ve kullanma.