【问题标题】:Azure Pipelines, Hosted Ubuntu Agent and Azure CLI Task with PowerShell Core: Use Az module and authenticate properlyAzure Pipelines、托管 Ubuntu 代理和带有 PowerShell Core 的 Azure CLI 任务:使用 Az 模块并正确进行身份验证
【发布时间】:2020-06-18 16:18:53
【问题描述】:

我有几个使用 PowerShell Az 模块 (Link) 的 PowerShell 脚本。由于某些要求,现在需要在托管的 Ubuntu 代理 (18.04) 上运行这些脚本。

所以我选择了使用 PowerShell Core 作为脚本类型的 Azure CLI 任务

我遇到的第一个问题是代理不知道 Az cmdlet。第二个问题是,即使 Az cmdlet 可用,也没有经过身份验证的上下文可以使用它们。

如何解决这两个问题?

【问题讨论】:

    标签: linux ubuntu azure-pipelines azure-cli powershell-core


    【解决方案1】:

    首先需要在托管的 Ubuntu 代理上安装 Az 模块。这可以通过执行具有脚本类型 PowerShell Core 的 Azure CLI 任务来完成

    Install-Module -Name Az -AllowClobber -Force

    为了能够进行身份验证,必须在任务上启用

    然后在PowerShell脚本中通过身份验证

    $tenantIdEnv = $env:tenantId
    $spnIdEnv = $env:servicePrincipalId
    $spnKeyEnvSecureString = ConvertTo-SecureString $env:servicePrincipalKey -AsPlainText -Force
    $credentialsServicePrincipal = New-Object System.Management.Automation.PSCredential($spnIdEnv, $spnKeyEnvSecureString)
    Connect-AzAccount -ServicePrincipal -TenantId $tenantIdEnv -Credential $credentialsServicePrincipal
    

    【讨论】:

    • 太棒了!感谢您在这里分享您的解决方案,您可以接受它作为答案,这样它可以帮助遇到相同问题的其他社区成员,我们可以归档这个帖子,谢谢。
    猜你喜欢
    • 2019-07-09
    • 2019-08-20
    • 2019-03-26
    • 2019-07-09
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 2022-11-04
    相关资源
    最近更新 更多