簡體   English   中英

ARM 模板使用現有 VNet 和子網創建 VM

[英]ARM template to create a VM using an existing VNet and subnet

最近我開始學習/使用 ARM 模板和 JSON 所以我完全是新手。 我被要求制作一個模板來創建一個虛擬機,並在訂閱中選擇現有的虛擬網絡和子網。

一切正常,除了每當我進行部署時,模板都會創建一個具有隨機名稱的新 vnet 和子網,而不是讓我從現有的 vnet 和子網中選擇(盡管 VM 可以正確創建)。

我使用https://github.com/Azure/azure-quickstart-templates/blob/master/101-vm-simple-rhel/azuredeploy.json快速入門模板作為基礎並添加了幾行(我將在下面放置)讓我像使用 VM 名稱一樣鍵入我的 vnet 和子網的名稱,但即使我正確鍵入了名稱,它也會不斷創建新的名稱。

我在參數部分的代碼中添加的行是:

"virtualNetworkName": {
    "type": "string",
    "metadata": {
        "description": "VNet to which the VM will connect."
    }
},
"subnetName": {
    "type": "string",
    "metadata": {
        "description": "Subnet to which the VM will connect."
    }
}

提前感謝您的寶貴時間!

要基於您使用的快速入門模板創建具有現有 VNet 的 VM,您只需刪除resources塊中的虛擬網絡資源及其依賴關系以及除變量subnetRef之外的有關 VNet 和子網的所有變量,然后更改如果 VNet 與 VM 位於同一資源組中,則此變量與您的參數類似:

"subnetRef": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]",

如果現有 VNet 在另一個資源組但在同一個訂閱中,則應按如下方式更改變量subnetRef

"subnetRef": "[resourceId('otherResourceGroup', 'Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]",

根據更改,模板將使用現有的 VNet 和子網,而不是創建新的。

看看這個樣本:

https://github.com/Azure/azure-quickstart-templates/tree/master/100-marketplace-sample

它展示了如何在模板中的資源上使用新/現有/無資源的模式。

暫無
暫無

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

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