【发布时间】:2015-09-02 09:23:34
【问题描述】:
我在 Azure 中的 VM 上设置了一个构建代理,它链接到我们的 Visual Studio Online。
然后,我有一个 Azure Powershell 构建步骤,它运行一个尝试执行 New-AzureResourceGroup 的脚本。
这会导致以下结果:
New-AzureResourceGroup:未经授权
113 ##[error]At C:\BuildAgents\agent\_work\[...]\Deploy-AzureResourceGroup.ps1:47 char:1
114 ##[error]+ New-AzureResourceGroup -Name $ResourceGroupName -Location $ResourceGroupLocation ...
115 ##[error]+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116 ##[error]+ CategoryInfo : CloseError: (:) [New-AzureResourceGroup], CloudException
117 ##[error]+ FullyQualifiedErrorId : Microsoft.Azure.Commands.Resources.NewAzureResourceGroupCommand
我可以毫无问题地在本地运行这些脚本。
我已尝试在脚本中导入发布设置文件,但似乎不允许 New-AzureResourceGroup 以这种方式进行身份验证。
我在本地用户帐户(不是网络服务)下将构建代理作为服务运行。
有谁知道如何让构建代理执行 New-AzureResourceGroup?
我希望能够进行完整的持续部署,包括设置和管理 Azure 中所需的一切,包括资源组。
更新
根据下面的文章:
“如果使用此方法[发布设置文件]进行连接,则只能使用 Azure 服务管理(或 ASM 模式)命令。”
https://azure.microsoft.com/en-us/documentation/articles/xplat-cli-connect/
我假设这也适用于 Azure powershell。
那么,如果不使用基于帐户的身份验证,真的没有办法在 azure 中管理资源吗?
更新
感谢 @bmoore-msft 提供缺失的部分。我将添加另一个我需要找到的链接的屏幕截图,以将构建设置为在实际帐户下运行。
【问题讨论】:
-
创建 Azure PowerShell 脚本时,是否尝试在 PowerShell 脚本中设置 Azure 订阅?
-
是的。脚本很好,包括指定订阅。唯一缺少的是如何设置构建代理作为帐户而不是使用证书进行身份验证。
标签: azure-devops azure-resource-manager azure-powershell azure-pipelines