簡體   English   中英

如何使用Azure ARM創建公共虛擬機映像?

[英]How do I create a public virtual machine image using Azure ARM?

我想創建一個任何人都可以使用ARM REST API啟動的虛擬機。

我怎么做? 我找不到說明。

顯然可以在此處創建公共虛擬機映像: https : //vmdepot.msopentech.com/help/contribute/vhd.html/

您可以通過兩種方法來執行此操作。 假設您在前端有一個網站/應用程序等,而這僅僅是您要尋找的后端通信。

先決條件

這里的選項假定您擁有一個活動的Microsoft Azure帳戶,並且能夠通過門戶在其中創建VM。 一旦處於可以執行的階段,就可以使用REST API創建計算機。

選項1

您可以使用REST API通過將請求發送到此URI來直接創建PUT

https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Compute/virtualMachines/{vm-name}?validating={true|false}&api-version={api-version}

您需要將JSON文檔附加到該請求,以定義要創建的計算機。

{  
  "id":"/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.Compute/virtualMachines/myvm1",
  "name":"myvm1", 
  "type":"Microsoft.Compute/virtualMachines",
  "location":"westus",
  "tags": {  
    "department":"finance"
  },
  "properties": {  
    "availabilitySet": {  
      "id":"/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.Compute/availabilitySets/myav1"
    },
    "hardwareProfile": {  
      "vmSize":"Standard_A0"
    },
    "storageProfile": {  
      "imageReference": {  
        "publisher":"MicrosoftWindowsServerEssentials",
        "offer":"WindowsServerEssentials",
        "sku":"WindowsServerEssentials",
        "version":"latest"
      },
      "osDisk": {  
        "name":"myosdisk1",
        "vhd": {  
          "uri":"http://mystorage1.blob.core.windows.net/vhds/myosdisk1.vhd"
        },
        "caching":"ReadWrite",
        "createOption":"FromImage"
      },
      "dataDisks": [ { 
         "name":"mydatadisk1", 
         "diskSizeGB":"1", 
         "lun": 0, 
         "vhd": { 
           "uri" : "http://mystorage1.blob.core.windows.net/vhds/mydatadisk1.vhd" 
         }, 
         "createOption":"Empty" 
       } ]
    },
    "osProfile": {  
      "computerName":"myvm1",
      "adminUsername":"username",
      "adminPassword":"password",
      "customData":"",
      "windowsConfiguration": {  
        "provisionVMAgent":true,
        "winRM": {
          "listeners": [ {
            "protocol": "https",
            "certificateUrl": "url-to-certificate"
          } ]
        },
        "additionalUnattendContent": {  
          "pass":"oobesystem",
          "component":"Microsoft-Windows-Shell-Setup",
          "settingName":"FirstLogonCommands|AutoLogon",
          "content":"<XML unattend content>"
        }  
        "enableAutomaticUpdates":true
      },
      "secrets":[ { 
         "sourceVault": { 
           "id": "/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.KeyVault/vaults/myvault1" 
         }, 
         "vaultCertificates": [ { 
           "certificateUrl": "https://myvault1.vault.azure.net/secrets/{secretName}/{secretVersion}" 
           "certificateStore": "{certificateStoreName}" 
         } ] 
       } ]
    },
    "networkProfile": {  
      "networkInterfaces": [ {  
        "id":"/subscriptions/{subscription-id}/resourceGroups/myresourceGroup1/providers /Microsoft.Network/networkInterfaces/mynic1"
      } ]
    }
  }
}

有關身份驗證和參數的更多詳細信息,可以在Azure虛擬機其余文檔中找到- 創建或更新虛擬機

選項2

或者,您可以在Azure的Github 模板存儲庫上創建一個Azure資源管理器模板,例如101-vm-simple-linux

一旦你的VM定義的模板要部署可以PUT請求給此URI

https://management.azure.com/subscriptions/ {subscription-id} / resourcegroups / {resource-group-name} /providers/microsoft.resources/deployments/ {deployment-name}?api-version = {api-version }

如果將該模板文件與另一個文件(指定所需的任何參數)一起復制到Azure Blob,並將此JSON文檔與PUT請求一起發送

{
  "properties": {
    "templateLink": {
      "uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json",
      "contentVersion": "1.0.0.0",
    },
    "mode": "Incremental",
    "parametersLink": {
      "uri": "http://mystorageaccount.blob.core.windows.net/templates/parameters.json",
      "contentVersion": "1.0.0.0",      
    }
  }
}

您可以在以下位置找到相關文檔:- 創建模板部署

這是對@Michael B的回答的詳細說明:要發現可用的圖像,可以使用VMDepot(當然),也可以查詢所有市場圖像 首先查看發布者列表,然后從那里確定想要的圖像。

您發現的URN值將是您要在REST調用中使用的值。 希望這可以幫助...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM