将多个参数传递给具有az-vm扩展名集的预期文件



我正在使用Azure DevOps在Azure VM上运行一系列脚本。我们的组织有许多限制和阻碍因素,使事情无法顺利运行,因此我们在VM上运行配置脚本等的最佳方式是使用";az-vm扩展集";命令

az vm extension set --vm-name ${{ parameters.primary_vm }} --name CustomScript --publisher Microsoft.Azure.Extensions --version 2.0 --settings '{"fileUris": ["${{ parameters.primary_uri }}"], "commandToExecute": "sudo chmod +x ./config.exp && ./config.exp ${{ parameters.param1 }} ${{ parameters.param2 }} ${{ parameters.param3 }}"}' --protected-settings '{"storageAccountName": "${{ parameters.storage_account }}", "storageAccountKey": "${{ parameters.storage_key }}"}'

我想将DevOps管道中的3个参数传递到要执行的命令中,该命令将传递到正在运行的预期文件中。

"commandToExecute": "sudo chmod +x ./config.exp && ./config.exp ${{ parameters.param1 }} ${{ parameters.param2 }} ${{ parameters.param3 }}

但这不起作用,我收到一个错误,即管道需要一个逗号delimeter。

Expecting ',' delimiter: line 1 column 237 (char 236)

如果我删除两个额外的参数,只传递一个,那么脚本将在VM上运行,但无法执行,并且由于缺少参数而失败。

我希望我遗漏了一些明显的东西,有什么帮助吗?

对于我的特定用例,我实际上能够用单引号包装参数以获得所需的结果。我意识到发送的值会导致命令出现问题。

"commandToExecute": "sudo chmod +x ./config.exp && ./config.exp '${{ parameters.param1 }}' '${{ parameters.param2 }}' '${{ parameters.param3 }}'

相关内容

  • 没有找到相关文章

最新更新