0

我想通过 api 或 python sdk 创建 azure 新虚拟机,我们在 azure 的新管理门户上拥有它,它允许我使用诸如network security group在门户上操作机器之类的功能。谢谢! 在此处输入图像描述

4

2 回答 2

0

您可以使用 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 -详细

于 2015-12-08T12:27:22.547 回答
0

您应该使用 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

于 2015-12-08T12:21:07.557 回答