适用于linux的Azure扩展脚本

时间:2017-02-13 14:41:18

标签: azure azure-virtual-machine

我试图通过使用&&&'分离每个命令来执行多个shell脚本。使用适用于Linux的Azure自定义扩展脚本。

ARM模板是部署模型。

示例代码段:

"settings": {
    "fileUris": "[script1,script2, script3]",
    "commandToExecute": "sh script1.sh && sh scrip2.sh && sh script3.sh"
}

但是只执行第一个脚本而另外两个脚本不执行。

注意:脚本日志路径中也没有错误。我也看到了在waagent文件夹路径中下载的所有脚本。

任何帮助都会非常棒。

操作系统:Linux

2 个答案:

答案 0 :(得分:4)

ARM模板代码段

cmdToExecute = script1.sh param1 param2&& script2.sh param1 param2&& script3.sh作为字符串传递给包装脚本,如

“commandToExecute”:“[concat('sh script_executor.sh \”',参数('cmdToExecute')'\“')]”

script_executor.sh - 将所有命令作为参数并执行每个命令

答案 1 :(得分:1)

如果您有多个脚本,则可以创建一个调用依赖脚本的入口点脚本,然后将入口点脚本,相关脚本和任何其他相关二进制文件上载到脚本位置(Azure存储blob或GitHub)。您可以使用以下格式确保上传多个文件:“fileUris” : [“ScriptFileUri1”, “ScriptFileUri2”, "ScriptFileUri3"]

更多信息请参阅此link

如果要将script1.sh设置为入口点脚本,可以编辑脚本,如下所示:

##script in scrpit1.sh
echo "hello world" 
##call script2.sh
./script2.sh 

##call script3.sh
./script3.sh