在同一个VM上通过Azure模板运行多个自定义脚本 [英] Run multiple custom scripts through Azure templates on same VM

查看:0
本文介绍了在同一个VM上通过Azure模板运行多个自定义脚本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在使用下面的代码片段通过ARM模板创建了VM之后,我有要运行的pythonscript1.py和bash脚本script2.sh。由于某些原因,当我添加这个script2.sh时,VM创建失败。‘fileUris’和命令ToExecute是正确的。可能的原因是什么,以及在哪里查找错误?

{
              "name": "[concat(variables('web'),'/script1')]",                                
              "properties":
               {                   
                    "settings": {
                        "fileUris": ["https://.../script1.py"],
                        "commandToExecute": "python script1.py"
                   }
              }
          },
     {
              "name": "[concat(variables('web'),'/script2')]",                                                 
              "properties":
               {                
                    "settings": {
                        "fileUris": ["https://.../script2.sh"],
                        "commandToExecute": "bash script2.sh"
                   }
              }
          },
为清楚起见,我省略了type、apiVersion、Location以及Publisher、type和typeHandlerVersion。这两个脚本都依赖于"[concat(‘Microsoft.Compute/virtualMachines/’,变量(‘Web’)]"

推荐答案

对于Azure VM扩展,它是Azure资源,而不是资源的属性。因此,如果您想要在一个模板中向VM添加多个扩展,您应该将每个扩展作为一个资源。这是example

更新

如果一个模板中有两个或多个扩展,您应该确保执行这些扩展的顺序。虽然在一个模板中有多个扩展,但它们仍在VM中逐个执行。

例如,第一个扩展名为

"[concat(variables('vmName'),'/', 'antiMalwareExtension')]"

您需要在第二个扩展中添加"DependsOn":

"dependsOn":[  
     "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]",
     "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'),'/', 'antiMalwareExtension')]"
  ],

后面的扩展也应该是这样的。

这篇关于在同一个VM上通过Azure模板运行多个自定义脚本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆