我想通过 api 或 python sdk 创建 azure 新虚拟机,我们在 azure 的新管理门户上拥有它,它允许我使用诸如network security group
在门户上操作机器之类的功能。谢谢!
在此处输入图像描述
2 回答
您可以使用 Visual Studio 资源组项目,这将帮助您为 VM 生成 JSON 模板,您可以直接使用 Powershell 或 API 提交模板,
{
"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')]"
},
"osProfile": {
"computerName": "[variables('vmName')]",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]"
},
"storageProfile": {
"imageReference": {
"publisher": "[variables('imagePublisher')]",
"offer": "[variables('imageOffer')]",
"sku": "[parameters('windowsOSVersion')]",
"version": "latest"
},
"osDisk": {
"name": "osdisk",
"vhd": {
"uri": "[concat('http://', variables('vhdStorageName'), '.blob.core.windows.net/', variables('vhdStorageContainerName'), '/', variables('OSDiskName'), '.vhd')]"
},
"caching": "ReadWrite",
"createOption": "FromImage"
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]"
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "[concat('http://', variables('diagnosticsStorageName'), '.blob.core.windows.net')]"
}
}
},
用于 Power Shell 脚本
# 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 -详细
您应该使用 Azure 资源管理模板,它使您能够使用您希望创建的环境的声明形式 模板的描述在这里 https://azure.microsoft.com/en-us/documentation/articles/resource-group- authoring-templates/ 你会在 GitHub 上找到许多示例(查找 azure-quickstart-templates)
如果您仍希望使用 python SDK,则必须进行相应的 REST API 调用。关于这种方式的一篇不错的文章在这里:http: //blogs.msdn.com/b/scicoria/archive/2015/02/12/azure-resource-manager-creating-an-iaas-vm-within-a-vnet .aspx
希望这会有所帮助 最好的问候 Stéphane