linux 的 Azure 扩展脚本

Azure Extension script for linux

我正在尝试通过使用 Linux 的 Azure 自定义扩展脚本使用“&&”分隔每个命令来执行多个 shell 脚本。

ARM 模板是部署模型。

示例代码段:

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

但只有第一个脚本执行,其他两个脚本不执行。

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

任何帮助都将非常有用。

操作系统:Linux

如果您有多个脚本,您可以编写一个调用依赖脚本的入口点脚本,然后将入口点脚本、依赖脚本和任何其他依赖二进制文件上传到脚本位置(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

ARM 模板代码段

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

"commandToExecute" : "[concat('sh script_executor.sh \"', parameters('cmdToExecute') '\"')]"

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