Azure RM模板。使用密钥保管库密码部署复制虚拟机

问题描述:

我想通过密钥保管库密钥替换密码来自动部署可变数量的虚拟机(通过复制部署)。我想为不同的虚拟机使用不同的秘密(例如VM1的secret1,VM2的secret2)。根据文档,我需要引用一个秘密与动态编号https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-keyvault-parameter#reference-a-secret-with-dynamic-id 我调整了文档示例来利用副本部署我的虚拟机,但我努力将secretName更改为secretName1,secretName2每次调用嵌套模板时。我怎样才能做到这一点?Azure RM模板。使用密钥保管库密码部署复制虚拟机

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 
    "parameters": { 
     "vaultName": { 
     "type": "string" 
     }, 
     "secretName": { 
     "type": "string" 
     } 
    }, 
    "resources": [ 
    { 
     "apiVersion": "2015-01-01", 
     "name": "[concat('nestedTemplate-', copyIndex())]", 
     "type": "Microsoft.Resources/deployments", 
     "copy": { 
     "name": "nestedTemplateLoop", 
     "count": "[parameters('numberOfVMs')]" 
     }, 
     "properties": { 
     "mode": "incremental", 
     "templateLink": { 
      "uri": "https://www.contoso.com/AzureTemplates/newVM.json", 
      "contentVersion": "1.0.0.0" 
     }, 
     "parameters": { 
      "adminPassword": { 
      "reference": { 
       "keyVault": { 
       "id": "[concat(resourceGroup().id, '/providers/Microsoft.KeyVault/vaults/', parameters('vaultName'))]" 
       }, 
       "secretName": "[parameters('secretName')]" 
      } 
      } 
     } 
     } 
    }], 
    "outputs": {} 
} 
+0

怎样的不同?例? – 4c74356b41

+0

我甚至不知道如何在简单的虚拟机上执行此操作。如果您碰巧看到一个很好的例子,请分享它。 – Max

+1

https://github.com/Azure/azure-quickstart-templates/blob/master/101-vm-secure-password/azuredeploy.json – 4c74356b41

"secretName": [concat(parameters('secretName'), copyIndex())] 
+1

仅有代码的答案确实是答案,但可能会从某些上下文/解释中受益。 – lfurini

+0

没有什么可以解释的,这是一个非常简单的表达式,它很直观 – 4c74356b41

+0

你需要解释这个表达式是如何解决这个问题的。与OP有什么不同? –