如何在 Azure DevOps 中设置 az cli 具体版本

wol*_*akp 9 bash azure azure-cli azure-devops

上次更新 Azure DevOps 后,我们的管道停止工作。
我正在使用AZURE CLI任务。
调查显示az cli已更新为2.2.0,但我们这边没有任何更改。

/usr/bin/az --version
azure-cli                          2.2.0
Run Code Online (Sandbox Code Playgroud)

并且某些az cli操作开始打印警告。
Warnings默认情况下被重定向bash到错误流,所以我最终得到:

Error: The process '/bin/bash' failed because one or more lines were written to the STDERR stream
Run Code Online (Sandbox Code Playgroud)

az cli如何为我的管道设置具体版本?
我希望管道能够通过 Azure DevOps 更新保持稳定。

Ami*_*nes 7

使用 Azure DevOps 托管代理时,某些软件会自动安装在计算机上。完整列表可以在这里找到Ubuntu。

其中一款软件是Azure CLI:Latest. 因此,如果您想降级,则需要安装新版本。该存储库在初始安装后被删除,因此您需要首先重新添加它:

AZ_REPO=$(lsb_release -cs)
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO main" |
 sudo tee /etc/apt/sources.list.d/azure-cli.list

AZ_VERSION=2.2.0
UBUNTU_CODENAME=bionic

sudo apt install -y --allow-downgrades azure-cli=$AZ_VERSION-1~$UBUNTU_CODENAME
Run Code Online (Sandbox Code Playgroud)

  • 很好,仅供参考,如果您使用图像“ubuntu-18.04”,则此命令有效;如果您使用“ubuntu-20.04”,请将“bionic”更改为“focal” (2认同)

Leo*_*SFT 2

如何在 Azure DevOps 中设置 az cli 具体版本

要解决该错误,请尝试在未选中“标准错误失败”选项的情况下再次运行该任务:

在此输入图像描述

此外,恐怕没有这样的现成方法来设置az cli. 我也无法通过 python 命令或巧克力包在已经具有最新版本 az cli 的代理中安装旧版本:

蟒蛇命令:

pip install --pre azure-cli --extra-index-url https://azurecliprod.blob.core.windows.net/edge
Run Code Online (Sandbox Code Playgroud)

此命令行仅安装最新版本的az cli. 由于我没有旧版本的 url,因此当已安装最新版本时,我无法测试它是否可以使用 python 命令安装旧版本 az ci。

然后我用巧克力包测试一下:

https://chocolatey.org/packages/azure-cli/2.1.0#individual

choco install azure-cli --version=2.1.0 --force
Run Code Online (Sandbox Code Playgroud)

但是,由于存在最新版本包,该安装命令仍然失败。

检查此线程以获取更多详细信息。

或者,您可以设置私人代理来构建您的项目,并通过 choco 包安装旧版本的 azure-cli。

希望这可以帮助。