现在有人如何在新的天蓝色门户中从现有的VHD创建VM?
我可以在manage.windowsazure.com上找到有关如何执行此操作的大量信息,但在portal.azure.com中没有任何关于此功能的信息 .
它不能在门户网站上完成 . 您将不得不使用powershell .
创建storageaccount . 例如在门户网站中 .
将VHD上传到azure . 要执行此操作,请在使用 Login-AzureRmAccount 登录后在powershell中运行以下行(更改<>之间的参数和硬盘上vhd的路径):
Login-AzureRmAccount
Add-AzurermVhd -Destination "https://<StorageAccountName>.blob.core.windows.net/<containerName>/<vhdname>.vhd" -LocalFilePath "D:\Virtual Machines\myharddisk.vhd" -ResourceGroupName "<ResourceGroupName" -Overwrite
我所做的是:
在Visual Studio 2015中创建了一个新项目 .
选择以下项目:Cloud-> Azure Resource Group
选择以下模板:Windows虚拟机
更改了一些参数并删除了所有不必要的东西 . 它现在的作用是:使用上传的vhd作为硬盘创建Windows虚拟机 . 它现在使用参数json文件,并且还必须在WindowsVirtualMachine.json中设置一些变量 . 这可能是重构的 . 但是现在它会做你需要的 .
对于此示例,您必须具有以下目录结构(就像Visual Studio创建它一样)
ProjectDirectory/Scripts/Deploy-AzureResourceGroup.ps1 ProjectDirectory/Templates/WindowsVirtualMachine.json ProjectDirectory/Templates/WindowsVirtualMachine.parameters.json
部署-AzureResourceGroup.ps1
#Requires -Version 3.0 #Requires -Module AzureRM.Resources #Requires -Module Azure.Storage Param( [string] [Parameter(Mandatory=$true)] $ResourceGroupLocation, [string] $ResourceGroupName = 'CreateImage', [string] $TemplateFile = '..\Templates\WindowsVirtualMachine.json', [string] $TemplateParametersFile = '..\Templates\WindowsVirtualMachine.parameters.json' ) Import-Module Azure -ErrorAction SilentlyContinue try { [Microsoft.Azure.Common.Authentication.AzureSession]::ClientFactory.AddUserAgent("VSAzureTools-$UI$($host.name)".replace(" ","_"), "2.8") } catch { } Set-StrictMode -Version 3 $OptionalParameters = New-Object -TypeName Hashtable $TemplateFile = [System.IO.Path]::Combine($PSScriptRoot, $TemplateFile) $TemplateParametersFile = [System.IO.Path]::Combine($PSScriptRoot, $TemplateParametersFile) # Create or update the resource group using the specified template file and template parameters file New-AzureRmResourceGroup -Name $ResourceGroupName -Location $ResourceGroupLocation -Verbose -Force -ErrorAction Stop New-AzureRmResourceGroupDeployment -Name ((Get-ChildItem $TemplateFile).BaseName + '-' + ((Get-Date).ToUniversalTime()).ToString('MMdd-HHmm')) ` -ResourceGroupName $ResourceGroupName ` -TemplateFile $TemplateFile ` -TemplateParameterFile $TemplateParametersFile ` @OptionalParameters ` -Force -Verbose
WindowsVirtualMachine.json
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "dnsNameForPublicIP": { "type": "string", "minLength": 1, "metadata": { "description": "Globally unique DNS Name for the Public IP used to access the Virtual Machine." } } }, "variables": { "OSDiskName": "<vhdNameWithoutExtension>", "vhdStorageContainerName": "<containerName>", "storageAccountName": "<StorageAccountName>", "nicName": "myVMNic", "addressPrefix": "10.0.0.0/16", "subnetName": "Subnet", "subnetPrefix": "10.0.0.0/24", "vhdStorageType": "Standard_LRS", "publicIPAddressName": "myPublicIP", "publicIPAddressType": "Dynamic", "vhdStorageName": "[concat('vhdstorage', uniqueString(resourceGroup().id))]", "vmName": "MyWindowsVM", "vmSize": "Standard_A2", "virtualNetworkName": "MyVNET", "vnetId": "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]", "subnetRef": "[concat(variables('vnetId'), '/subnets/', variables('subnetName'))]" }, "resources": [ { "type": "Microsoft.Storage/storageAccounts", "name": "[variables('vhdStorageName')]", "apiVersion": "2015-06-15", "location": "[resourceGroup().location]", "tags": { "displayName": "StorageAccount" }, "properties": { "accountType": "[variables('vhdStorageType')]" } }, { "apiVersion": "2015-06-15", "type": "Microsoft.Network/publicIPAddresses", "name": "[variables('publicIPAddressName')]", "location": "[resourceGroup().location]", "tags": { "displayName": "PublicIPAddress" }, "properties": { "publicIPAllocationMethod": "[variables('publicIPAddressType')]", "dnsSettings": { "domainNameLabel": "[parameters('dnsNameForPublicIP')]" } } }, { "apiVersion": "2015-06-15", "type": "Microsoft.Network/virtualNetworks", "name": "[variables('virtualNetworkName')]", "location": "[resourceGroup().location]", "tags": { "displayName": "VirtualNetwork" }, "properties": { "addressSpace": { "addressPrefixes": [ "[variables('addressPrefix')]" ] }, "subnets": [ { "name": "[variables('subnetName')]", "properties": { "addressPrefix": "[variables('subnetPrefix')]" } } ] } }, { "apiVersion": "2015-06-15", "type": "Microsoft.Network/networkInterfaces", "name": "[variables('nicName')]", "location": "[resourceGroup().location]", "tags": { "displayName": "NetworkInterface" }, "dependsOn": [ "[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]", "[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]" ], "properties": { "ipConfigurations": [ { "name": "ipconfig1", "properties": { "privateIPAllocationMethod": "Dynamic", "publicIPAddress": { "id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('publicIPAddressName'))]" }, "subnet": { "id": "[variables('subnetRef')]" } } } ] } }, { "apiVersion": "2015-06-15", "type": "Microsoft.Compute/virtualMachines", "name": "[variables('vmName')]", "location": "[resourceGroup().location]", "tags": { "displayName": "VirtualMachine" }, "dependsOn": [ "[concat('Microsoft.Storage/storageAccounts/', variables('vhdStorageName'))]", "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]" ], "properties": { "hardwareProfile": { "vmSize": "[variables('vmSize')]" }, "storageProfile": { "osDisk": { "name": "osdisk", "osType": "Windows", "vhd": { "uri": "[concat('http://', variables('storageAccountName'), '.blob.core.windows.net/', variables('vhdStorageContainerName'), '/', variables('OSDiskName'), '.vhd')]" }, "caching": "ReadWrite", "createOption": "Attach" } }, "networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]" } ] } } } ] }
WindowsVirtualMachine.parameters.json
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "dnsNameForPublicIP": { "value": "<someUniqueNameForYourDnsName>" } } }
Before running change the parameters in both json files!.\Deploy-AzureResourceGroup.ps1 "West Europe"
.\Deploy-AzureResourceGroup.ps1 "West Europe"
日志记录应该告诉您VM已成功创建 .
今天(2016年10月)仍然无法在新门户网站上完成 .
但为了完整性:您可以在旧门户网站(https://manage.windowsazure.com)中执行此操作:
单击新建 - 计算 - 虚拟机 - 从库中 . 在左侧选择我的图像或我的磁盘并选择您要使用的VHD . 照常按照说明操作 .
2 回答
它不能在门户网站上完成 . 您将不得不使用powershell .
创建storageaccount . 例如在门户网站中 .
将VHD上传到azure . 要执行此操作,请在使用
Login-AzureRmAccount
登录后在powershell中运行以下行(更改<>之间的参数和硬盘上vhd的路径):我所做的是:
在Visual Studio 2015中创建了一个新项目 .
选择以下项目:Cloud-> Azure Resource Group
选择以下模板:Windows虚拟机
更改了一些参数并删除了所有不必要的东西 . 它现在的作用是:使用上传的vhd作为硬盘创建Windows虚拟机 . 它现在使用参数json文件,并且还必须在WindowsVirtualMachine.json中设置一些变量 . 这可能是重构的 . 但是现在它会做你需要的 .
对于此示例,您必须具有以下目录结构(就像Visual Studio创建它一样)
部署-AzureResourceGroup.ps1
WindowsVirtualMachine.json
WindowsVirtualMachine.parameters.json
Login-AzureRmAccount
登录)Before running change the parameters in both json files!
.\Deploy-AzureResourceGroup.ps1 "West Europe"
日志记录应该告诉您VM已成功创建 .
今天(2016年10月)仍然无法在新门户网站上完成 .
但为了完整性:您可以在旧门户网站(https://manage.windowsazure.com)中执行此操作:
单击新建 - 计算 - 虚拟机 - 从库中 . 在左侧选择我的图像或我的磁盘并选择您要使用的VHD . 照常按照说明操作 .