如何在Azure比例集中设置自定义脚本的依赖项?

时间:2017-04-05 11:59:02

标签: azure

以下是模板代码的一部分。现在脚本是并行执行的。如何从DockerExtension添加CustomScriptForLinux依赖项,首先使用DockerExtension,然后使用CustomScriptForLinux?

{
      "type": "Microsoft.Compute/virtualMachineScaleSets",
      "name": "[variables('namingInfix')]",
      "location": "[variables('location')]",
      "apiVersion": "2016-03-30",
      "tags": {
        "displayName": "VMScaleSet"
      },    
"extensionProfile": {
            "extensions": [
            {
                "type": "Microsoft.Compute/virtualMachines/extensions",
                "name": "[concat(variables('namingInfix'), 'DockerExtension')]",
                    "location": "[variables('location')]",
                    "properties": {
                      "publisher": "Microsoft.Azure.Extensions",
                      "type": "DockerExtension",
                      "typeHandlerVersion": "1.1",
                      "autoUpgradeMinorVersion": true,
                      "settings": {},
                      "protectedSettings": {}
                   }
            },
            {
                "name": "ConfigureNginx",
                "properties": {
                "publisher": "Microsoft.OSTCExtensions",
                "type": "CustomScriptForLinux",
                "typeHandlerVersion": "1.4",
                "autoUpgradeMinorVersion": true,
                "settings": {
                    "fileUris": [
                      "[concat(parameters('_artifactsLocation'), '/', variables('ConfigureNginxScriptFolder'), '/', variables('ConfigureNginxScriptFileName'), parameters('_artifactsLocationSasToken'))]"
                        ],
                        "commandToExecute": "[concat('sh ', variables('ConfigureNginxScriptFileName'))]"
                      }
                    }
                  }

1 个答案:

答案 0 :(得分:1)

dependsOn您无法拥有extensions属性,因此您的主要解决方法是:

  1. 在脚本中实现自定义逻辑以等待彼此,例如脚本2在脚本1创建名为script1.done的文件时等待
  2. 从此模板中删除其中一个扩展,并在同一模板中创建另一个嵌套部署,并部署这两个扩展,使嵌套部署取决于VMSS部署。
    此方法的问题是您必须将VMSS中的所有VM升级到最新版本。