2016-09-19 48 views
0

我在ARM模板中使用copyindex()旋转了多个Azure虚拟机。下面是我使用的资源:在azure中输出虚拟机的私有IP ARM

{ 
    "apiVersion": "[variables('apiVersion')]", 
    "type": "Microsoft.Compute/virtualMachines", 
    "name": "[concat(parameters('vmDnsPrefixClientNode'),copyIndex(1))]", 
    "location": "[resourceGroup().location]", 
    "copy": { 
     "name": "virtualMachineLoop", 
     "count": "[parameters('vmInstancesClientNode')]" 
    }, 
    "dependsOn": [ 
    "[concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName'),copyindex(1))]", 
     "[concat('Microsoft.Network/networkInterfaces/', parameters('vmDnsPrefixClientNode'),copyindex(1),'-nic')]" 
    ], 
    "properties": { 
    "hardwareProfile": { 
     "vmSize": "[parameters('vmSizeClientNode')]" 
    }, 
    "osProfile": { 
     "computername": "[concat(parameters('vmDnsPrefixClientNode'), copyIndex(1))]", 
     "adminUsername": "[parameters('username')]", 
     "adminPassword": "[parameters('password')]" 
    }, 
    "storageProfile": { 
     "imageReference": { 
     "publisher": "[variables('imagePublisher')]", 
     "offer": "[variables('imageOffer')]", 
     "sku": "[variables('ubuntuOSVersion')]", 
     "version": "latest" 
     }, 
     "osDisk": { 
     "name": "osdisk1", 
     "vhd": { 
      "uri": "[concat('http://',variables('storageAccountName'),copyindex(1),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',parameters('vmDnsPrefixClientNode'),copyIndex(1),'-osdisk1.vhd')]" 
     }, 
     "caching": "ReadWrite", 
     "createOption": "FromImage" 
     }, 
     "dataDisks": [ 
     { 
      "name": "datadisk1", 
      "diskSizeGB": "10", 
      "lun": 0, 
      "vhd": { 
      "uri": "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName'),copyindex(1)), variables('apiVersion')).primaryEndpoints.blob, variables('vmDataContainerName'),'/',parameters('vmDnsPrefixClientNode'),copyIndex(1),'-',variables('dataDisk1VhdName'),'.vhd')]" 
      }, 
      "createOption": "Empty" 
     } 
     ] 
    }, 
    "networkProfile": { 
     "networkInterfaces": [ 
     { 
      "id": "[resourceId('Microsoft.Network/networkInterfaces',concat(parameters('vmDnsPrefixClientNode'),copyindex(1),'-nic'))]" 
     } 
     ] 
    } 
    } 
}, 

我想这样的事情,这是行不通的

"outputs": { 
    "privateIP": { 
    "value": "[reference(concat(parameters('vmDnsPrefixClientNode'),copyindex(1),'-nic'),providers('Microsoft.Network', 'privateIPAddresses').apiVersions[0]).dnsSettings.fqdn]", 
    "type": "string", 
    "copy": { 
     "name": "vmNic", 
     "count": "[parameters('vmInstancesClientNode')]" 
    } 
    } 
} 

有谁知道如何获得输出专用IP或内部FQDN?

回答

0

我在我的模板中使用了下面的代码来从网络接口获取私有IP地址。

"outputs":{ 
    "networkInterface":{ 
     "value": "[reference(resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaceName')),'2016-09-01')]", 
     "type": "object" 
    } 
} 

一旦你的输出,那么你可以找到在

IP地址

outputs.networkInterface.value.ipConfigurations [0] .properties.privateIPAddress

和DNS后缀at

outputs.networkInterface.value.dnsSettings.internalDomainNameSuffix