Как в интерактивном режиме запросить пароль администратора при использовании шаблона развертывания Azure json из Powershell?

Контекст

Я загрузил сценарий автоматизации моей виртуальной машины Azure Windows. Я решил использовать сценарий Powershell для автоматизации развертывания.

Часть виртуальной машины схемы json требует «adminPassword». Его не было, поэтому я добавил его и ввел параметр как в шаблон, так и в оба файла параметров:

template.json

"parameters": {
    "adminPassword": { "type": "securestring" },
...
...
"resources": [
     ...
     ...
     "osProfile": {
         "computerName": "[parameters('virtualMachines_name')]",
         "adminUsername": "myname",
     "adminPassword": "[parameters('adminPassword')]",
     "windowsConfiguration": {
         "provisionVMAgent": true,
         "enableAutomaticUpdates": true
     },
     "secrets": [],
     "allowExtensionOperations": true
},

parameters.json

"parameters": {
    "adminPassword": { "type": "securestring" }

Хорошая попытка, но как-то в глубине души я знал, что это ничего не сделает, я имею в виду, что ничего не спросит в интерактивном режиме. Один или несколько шагов отсутствуют ... но я застрял здесь ...

В «официальном» MS-документе автор просто поместил четкий пароль в parameters.json, что довольно тревожно. см. помещая чистый пароль в paramters.json?


person g.pickardou    schedule 24.01.2019    source источник
comment
Я действительно кое-что нашел ... blog.siliconvalve.com/2015/11/30/   -  person g.pickardou    schedule 24.01.2019
comment
почему бы и нет, если вы просто запустите powershell или cli, он предложит вам ввести все недостающие значения параметров   -  person 4c74356b41    schedule 24.01.2019
comment
Кроме того, как вы думаете, человек будет предоставлять идентификатор kv в интерактивном режиме? :)   -  person 4c74356b41    schedule 24.01.2019
comment
Дело в том, что он не спрашивал в интерактивном режиме, имея приведенный выше код. Обратите внимание, что параметры находятся в шаблоне Azure, а не в параметрах PowerShell.   -  person g.pickardou    schedule 24.01.2019
comment
это не имеет значения. если вы не укажете значение для параметра, вы получите подсказку или ошибку, в зависимости от того, как вы вызываете шаблон   -  person 4c74356b41    schedule 24.01.2019
comment
да, я получил сообщение об ошибке, если не указал параметр. Вы написали ... в зависимости от того, как вы вызываете .... Итак, как мне вызвать шаблон?   -  person g.pickardou    schedule 24.01.2019
comment
azure powershell \ az cli \ portal предложит ввести отсутствующие параметры. остальные api \ sdks выкинут   -  person 4c74356b41    schedule 24.01.2019
comment
Я бегу со своего рабочего стола. Но теперь я получил это: New-AzureRmResourceGroupDeployment -ResourceGroupName $ resourceGroupName -TemplateFile и не должен использовать параметр -TemplateParameterFile   -  person g.pickardou    schedule 24.01.2019


Ответы (2)


Я только что протестировал его, и он работает именно так, можете ли вы обновить свою лазурную оболочку PowerShell, она, вероятно, сильно устарела.

параметр:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "test": {
            "value": "1"
        }
    }
}

шаблон:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "test": {
            "type": "string"
        },
        "testo": {
            "type": "string"
        }
    },
    "resources": []
}

PowerShell:

New-AzResourceGroupDeployment -ResourceGroupName NetworkWatcherRG -TemplateUri 'https://paste.ee/d/S2wJm/0' -TemplateParameterUri 'https://paste.ee/d/8rW6k/0'

он предложит вам ввести отсутствующий параметр. то же самое произойдет, если вы используете TemplateParameterFile

person 4c74356b41    schedule 24.01.2019

Просто удалите параметр из файла * .parameters.json, чтобы получить подсказку. например


файл template.json


{
   "$schema":"https://schema.management.azure.com/schemas/2015-01- 
             01/deploymentTemplate.json#",
   "contentVersion":"1.0.0.0",
   "parameters":{
      "alertName":{
         "minLength":1,
         "type":"String",
         "metadata":{
            "description":"CPU Percentage alert verifies the cpu usage of virtual machine 
                           and intimates to action group if threshold goes beyond that"
         }
      },
      "alertDescription":{
         "defaultValue":"Virtual Machines alert for CPU Percentage",
         "type":"String",
         "metadata":{
            "description":"Virtual Machines alert for CPU Percentage"
         }
      }
   }
}


parameters.json

{
   "$schema":"https://schema.management.azure.com/schemas/2015-01- 
   01/deploymentParameters.json#",
   "contentVersion":"1.0.0.0",
   "parameters":{
      "alertName":{
         "value":"CPU% Measurement"
      }
   }
}


New-AzResourceGroupDeployment -name "CustomDeployment" -ResourceGroupName test -TemplateFile "C:\Users\sachin.kalia\template.json" -TemplateParameterFile "
C:\Users\sachin.kalia\parameters.json" 

После того, как вы выполните указанную выше команду, вам будет предложено ввести alertDescription. Надеюсь, это вам поможет.

person Sachin Kalia    schedule 04.03.2020