如何在bash脚本中从命令行登录Azure帐户

时间:2018-11-06 23:50:25

标签: bash syntax azure-cli

我已经创建了一个bash脚本,因为我想通过Jenkins Job启动和停止虚拟机。脚本的内容如下

!/ bin / bash

set -x


applicationId = "xxxxxxxxxxxxxxxx"
tenantID="xxxxxxxxxxxxxxxxx"
password = "jenkins"

az login --service-principal --username "${applicationId}" --password "{$password}" --tenant "{tenantID}"

export resource_group=rg_networking
# declare an array variable
declare -a host_list=("<Array of Host Space sepperated>")

## now loop through the above array
for i in "${host_list[@]}"
do
   echo "Stopping Virtual Machine $i"
   az vm stop --name "${i}" --resource-group "${resource_group}"
done

exit 0

运行Jenkins作业时收到的错误消息如下:

Get Token request returned http error: 400 and server response: {"error":"invalid_request","error_description":"AADSTS90002: Requested tenant identifier '{tenantid}' is not valid and not valid external domain format\r\nTrace ID: 1bb4c96a-c26c-48a3-b502-7d8b17b90800\r\nCorrelation ID: 2b01e6aa-0fd6-4a52-878b-f829d5d02152\r\nTimestamp: 2018-11-06 23:42:36Z","error_codes":[90002],"timestamp":"2018-11-06 23:42:36Z","trace_id":"1bb4c96a-c26c-48a3-b502-7d8b17b90800","correlation_id":"2b01e6aa-0fd6-4a52-878b-f829d5d02152"}

以及在每次执行完az stop vm stement ix之后的以下错误。

ERROR: Please run 'az login' to setup account.

无法理解是什么问题?

有人可以帮助我吗?

谢谢

1 个答案:

答案 0 :(得分:1)

第一个错误是由这部分引起的,您错过了命令中的$

az login --service-principal --username "${applicationId}" --password "{$password}" --tenant "{tenantID}"

尝试下面的命令,它对我而言效果很好。

az login --service-principal --username "${applicationId}" --password "${password}" --tenant "${tenantID}"

enter image description here

登录后,ERROR: Please run 'az login' to setup account.错误也将得到解决。