Шаблон Azure RM. Развертывание копии виртуальной машины с паролем Key Vault

Я хотел бы автоматизировать развертывание переменного количества виртуальных машин (развертываемых с помощью копии), заменив пароль секретами Key Vault. Я хотел бы использовать разные секреты для разных виртуальных машин (например, secret1 для VM1, secret2 для VM2). Согласно документации, мне нужно указать секрет с динамическим идентификатором https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-keyvault-parameter#reference-a-secret-with-dynamic-id Я изменил пример документации, чтобы использовать копию для развертывания моих виртуальных машин, но мне трудно изменить secretName на secretName1, secretName2 при каждом вызове вложенного шаблона. Как я могу это сделать?

{
    "$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": {}
}

person Max    schedule 13.02.2017    source источник
comment
чем они отличаются? пример?   -  person 4c74356b41    schedule 13.02.2017
comment
Я даже не знаю, как это сделать на простой ВМ. Если вам довелось увидеть хороший пример, поделитесь им.   -  person Max    schedule 13.02.2017
comment
github.com/Azure/ azure-quickstart-templates / blob / master /   -  person 4c74356b41    schedule 13.02.2017
comment
@ 4c74356b41, я просмотрел шаблон, который вы связали, и немного научился. Хотя мой вопрос все еще в силе, я обновил его, чтобы он стал более конкретным.   -  person Max    schedule 15.02.2017


Ответы (1)


person    schedule
comment
Ответ, состоящий только из кода, действительно является ответом, но он, вероятно, выиграет от некоторого контекста / объяснения. - person lfurini; 15.02.2017
comment
нечего объяснять, это очень простое выражение, довольно интуитивно понятное - person 4c74356b41; 15.02.2017
comment
Вам нужно объяснить, как это выражение решает проблему. Чем он отличается от того, что был у ОП? - person Rosário Pereira Fernandes; 15.02.2017
comment
Этот ответ решает мою проблему изменения secretName при каждом вызове вложенного шаблона. Но при таком подходе возникает другая проблема ... Поскольку я использую копию внутри вложенного шаблона и сам вызываю вложенный шаблон, может возникнуть конфликт. Допустим, я хотел бы развернуть 2 виртуальные машины с паролями secret1 и secret2. Но мой вложенный шаблон сделает это дважды! С паролем secret1 для VM1 и VM2, а также попытается развернуть VM1 и VM2 с паролем secret2 для обеих виртуальных машин. Как я могу это преодолеть? - person Max; 16.02.2017
comment
ну не создавать 2 виртуальных машины во вложенном шаблоне? создать только один? @Максимум - person 4c74356b41; 16.02.2017
comment
Но в том-то и дело! Я не хочу создавать одну виртуальную машину, я хотел бы указать, сколько виртуальных машин будет развернуто с помощью параметров, и для первой будет использоваться secret1, для второй secret2 и так далее. - person Max; 17.02.2017
comment
Что ж, вы должны принять это как ответ и создать новый вопрос, потому что это совершенно новый вопрос - person 4c74356b41; 17.02.2017