在Azure JSON模板中创建CustomScript的正确方法

时间:2015-12-28 09:00:54

标签: json powershell azure

我正在尝试将自定义PowerShell脚本添加到ARM模板。 我已经以多种不同的方式尝试过它,并且总是出错,错误的URI,无法找到文件或类似的东西。你能帮我们纠正一下吗?

所以在变量中我有文件的路径:

"CustomScriptScript": https://raw.githubusercontent.com/starwinddeploy/azure-sw-cluster/master/scripts/CustomScript.ps1

在资源部分,我有一个带有其他资源的虚拟机:

   {
"type": "Microsoft.Compute/virtualMachines",
"resources": [
            {
                "name": "CustomScript",
                "type": "extensions",
                "location": "[parameters('location')]",
                "apiVersion": "2015-06-15",
                "dependsOn": [
                    "[concat('Microsoft.Compute/virtualMachines/', concat(variables('vmName'), copyindex(1)))]"
                ],
                "tags": {
                    "displayName": "CustomScript"
                },
                "properties": {
                    "publisher": "Microsoft.Compute",
                    "type": "CustomScriptExtension",
                    "typeHandlerVersion": "1.4",
                    "autoUpgradeMinorVersion": true,
                  "settings": {
                    "fileUris": [
                      "[concat(variables('CustomScriptScript'))]"
                    ],
                    "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File ', variables('CustomScriptScript'))]"
                  }
                }
            }
        ]
}

1 个答案:

答案 0 :(得分:1)

我发现了几个问题:

  1. "type": "extensions"更改为"type": "Microsoft.Compute/virtualMachines/extensions"
  2. 变量CustomScriptScript应该是您要执行的ps1文件的URI。尝试将其用作URI是没有意义的,然后在commandToExecute中使用它作为脚本的名称。您需要两个不同的变量。
  3. 您的模板中可能存在其他错误。我建议从这个模板开始:https://github.com/Azure/azure-quickstart-templates/blob/master/201-vm-custom-script-windows/azuredeploy.json

    完成后,请根据需要进行修改。