我想使用Azure CLI命令运行脚本。
我正在使用以下命令来执行此操作。
执行命令: -
az vm extension set --resource-group rg1 --vm-name test --name CustomScript --publisher Microsoft.Azure.Extensions --version 2.0 --protected-settings '{"fileUris": ["https://test.blob.core.windows.net/testcontainer/test.sh?st=2018-05-28T19%3A56%3A00Z&se=2018-05-30T19%3A56%3A00Z&sp=r&sv=2017-04-17&sr=b&sig=LsAmSVWmggcBYXs7XwUhdA16HfSChi6%2FvH0vqjZMS%2F1YM%3D"], "commandToExecute": "bash test.sh 1 2 3"}'
我想使用如下命令在命令中传递变量并收到以下错误
SCRIPT_LOCATION =“https://test.blob.core.windows.net/testcontainer/test.sh?st=2018-05-28T19%3A56%3A00Z&se=2018-05-30T19%3A56%3A00Z& SP = R&安培; SV = 2017年4月17日&安培; SR = b和= SIG%LsAmSVWmggcBYXs7XwUhdA16HfSChi6%2FvH0vqjZMS%2F1YM 3D” SCRIPT_NAME =“test.sh”PARAM1 =“test1”PARAM2 =“test2”PARAM3 =“test3”
执行命令: -
az vm extension set --resource-group rg1 --vm-name test --name CustomScript --publisher Microsoft.Azure.Extensions --version 2.0 --protected-settings '{"fileUris": [$SCRIPT_LOCATION], "commandToExecute": "bash $SCRIPT_NAME $PARAM1 $PARAM2 $PARAM3"}'
错误: -
部署失败。相关ID:72859669-9cdf-4bb0-9aac-1a6af52c7e1c。 VM报告失败的时候 处理扩展'CustomScript'。错误消息:“启用失败: 无法获得配置:json验证错误:无效的受保护 设置JSON:fileUris.0:与'uri'格式不匹配。
答案 0 :(得分:1)
我可以使用以下命令解决上述问题。以下命令效果很好。
az vm extension set --resource-group rg1 --vm-name test --name CustomScript --publisher Microsoft.Azure.Extensions --version 2.0 --protected-settings "{\"fileUris\": [\"$SCRIPT_LOCATION\"], \"commandToExecute\": \"bash $SCRIPT_NAME $PARAM1 $PARAM2 $PARAM3\"}"
答案 1 :(得分:0)
下面是一种不同的方式,我喜欢,因为它避免了需要转义双引号(所以JSON有效载荷是更可读的):
az vm extension set --name DSC --publisher Microsoft.Powershell --version 2.9 --vm-name DC -g $resourceGroupName \
--settings '{"ModulesURL": "'${artifactsURI}'dsc/ConfigureDCVM.zip", "configurationFunction": "ConfigureDCVM.ps1\\ConfigureDCVM", "Properties": {"domainFQDN": "'${domainFQDN}'", "PrivateIP": "10.0.1.4"} }' \
--protected-settings '{"Properties": {"AdminCreds": {"UserName": "'${adminUserName}'", "Password": "'${adminPassword}'" }, "AdfsSvcCreds": {"UserName": "'${adfsSvcUserName}'", "Password": "'${serviceAccountsPassword}'" }}}'