在 Windows Server 2019 自托管代理上找不到 azure cli 扩展

Posted

技术标签:

【中文标题】在 Windows Server 2019 自托管代理上找不到 azure cli 扩展【英文标题】:azure cli extension not found on windows server 2019 self hosted agent 【发布时间】:2020-07-31 16:38:16 【问题描述】:

我已在我的 Windows 2019 自托管代理上安装了最新版本的 Azure CLI。检查版本时输出。

PS C:\Users\blahblah> az --version
azure-cli                          2.3.1

command-modules-nspkg              2.0.3
core                               2.3.1
nspkg                              3.0.4
telemetry                          1.0.4

Extensions:
azure-devops                      0.18.0

Python location 'C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe'
Extensions directory 'C:\Users\builduser\.azure\cliextensions'

Python (Windows) 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 02:47:15) [MSC v.1900 32 bit (Intel)]

Legal docs and information: aka.ms/AzureCliLegal



Your CLI is up-to-date.

然后在 devops azure pipeline release 中运行相同的脚本时:

2020-04-18T03:50:14.3974844Z ##[debug]which 'az'
2020-04-18T03:50:14.3981389Z ##[debug]found: 'C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd'
2020-04-18T03:50:14.3981785Z ##[debug]which 'az'
2020-04-18T03:50:14.3985125Z ##[debug]found: 'C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd'
2020-04-18T03:50:14.3988433Z ##[debug]C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd arg: --version
2020-04-18T03:50:14.3989115Z ##[debug]C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd arg: --version
2020-04-18T03:50:14.3998697Z ##[debug]exec tool: C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd
2020-04-18T03:50:14.3998969Z ##[debug]exec tool: C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd
2020-04-18T03:50:14.3999139Z ##[debug]arguments:
2020-04-18T03:50:14.3999314Z ##[debug]arguments:
2020-04-18T03:50:14.4000072Z ##[debug]   --version
2020-04-18T03:50:14.4000425Z ##[debug]   --version
2020-04-18T03:50:14.4017396Z [command]C:\windows\system32\cmd.exe /D /S /C ""C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd" --version"
2020-04-18T03:50:17.1212688Z azure-cli                          2.3.1
2020-04-18T03:50:17.1213010Z 
2020-04-18T03:50:17.1213120Z command-modules-nspkg              2.0.3
2020-04-18T03:50:17.1213248Z core                               2.3.1
2020-04-18T03:50:17.1213345Z nspkg                              3.0.4
2020-04-18T03:50:17.1213451Z telemetry                          1.0.4
2020-04-18T03:50:17.1213507Z 
2020-04-18T03:50:17.1213631Z Python location 'C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe'
2020-04-18T03:50:17.1214799Z Extensions directory 'C:\windows\ServiceProfiles\NetworkService\.azure\cliextensions'
2020-04-18T03:50:17.1214873Z 
2020-04-18T03:50:17.1215003Z Python (Windows) 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 02:47:15) [MSC v.1900 32 bit (Intel)]
2020-04-18T03:50:17.1215081Z 
2020-04-18T03:50:17.1215191Z Legal docs and information: aka.ms/AzureCliLegal
2020-04-18T03:50:17.1215271Z 
2020-04-18T03:50:17.1215320Z 
2020-04-18T03:50:17.1215369Z 
2020-04-18T03:50:17.1215468Z Your CLI is up-to-date.
2020-04-18T03:50:17.1215525Z 
2020-04-18T03:50:17.1215623Z Please let us know how we are doing: https://aka.ms/clihats

请注意发布管道未显示我已安装 azure-devops 扩展。我需要这个扩展来远程触发管道发布创建。我已经三倍和四倍地检查我正在比较同一台服务器。

我的下一步是在调用 az 管道之前添加一个安装 Azure CLI 扩展的步骤。但是,我宁愿尝试弄清楚为什么这不起作用。我在本地打了同样的电话,它工作正常。但是,在本地测试相同的调用时,我以自己的身份登录,而不是使用服务主体/服务订阅。

有没有人遇到过这个问题并知道这里发生了什么?任何建议将不胜感激。

【问题讨论】:

【参考方案1】:

我发现你的本地和发布管道中的 Extensions 目录不一致。

在本地:

Extensions directory 'C:\Users\builduser\.azure\cliextensions'

在发布管道日志中:

Extensions directory 'C:\windows\ServiceProfiles\NetworkService\.azure\cliextensions'

如果你使用的是私有代理,扩展目录应该是一致的:

所以你需要检查以下几点:

1.您安装 az cli 的机器与您用于运行管道的代理是同一台机器。

2.根据目录路径,检查azure cli的安装情况。

【讨论】:

啊,很好的收获。作为版本的一部分,我添加了一个安装 azure cli 的步骤,它现在正在运行。非常感谢您的帮助。

以上是关于在 Windows Server 2019 自托管代理上找不到 azure cli 扩展的主要内容,如果未能解决你的问题,请参考以下文章

带有 SQL Server 2019 Express 的 Windows Server 2019 上的 Hangfire

具有 OWIN 自主机和 Windows 身份验证的 Web Api

Windows Server 2019 中的 Java 8 性能问题

从主机 WinForms 程序访问自托管 WCF 服务

在 Server 2008 上的 Windows 服务中托管 WCF 服务时应该使用啥帐户?

无法让 nservicebus 性能计数器在 Windows Server 2008 R2 上的开发/自主机中工作