簡體   English   中英

如何在 Azure DevOps 上運行的 PowerShell 上登錄 azure

[英]How can I login azure on PowerShell that run on Azure DevOps

我有一個 PowerShell 文件,用於從我們的 Azure Key Vault 之一獲取秘密值供以后使用(使用服務主體登錄 Power BI)。 這是 DevOps 的截圖,

在此處輸入圖像描述

這是我的 PS 代碼,

Write-Output "Get Secret from AKV"
$secret = az keyvault secret show --vault-name PA01 --name <my key vault secret name> --output json
$x = $secret | ConvertFrom-Json

$azureAplicationId = "<my client id>"
$azureTenantId= "<my tenant id>"

Write-Output "Generate Credential"
$azurePassword = ConvertTo-SecureString $x.value -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($azureAplicationId , $azurePassword)

Write-Output "Login SP"
Connect-PowerBIServiceAccount -Tenant $azureTenantId -ServicePrincipal -Credential $psCred

我可以在 Cloud shell 上成功運行它,但在我的 Azure DevOps 管道上卻失敗了。 正如您在下面的屏幕截圖中看到的那樣,

在此處輸入圖像描述

我認為運行此命令時作業失敗:

$secret = az keyvault secret show --vault-name PA01 --name <my key vault secret name> --output json

因為雖然作業自動運行Connect-AzAccount命令,但登錄無效,據我所知,這就是為什么它說“錯誤:請運行 az login to setup account”(我猜是這樣),所以“az keyvault”命令無法運行。

是的,我可以在我的腳本中添加“az login --use-device-code”並通過手動輸入代碼成功運行,但問題是

我不希望在登錄過程中有任何交互體驗,因為我希望這個工作是全自動和無人值守的。

那么,有什么解決辦法嗎? 對您的幫助深表感謝!

請檢查這些:

PowerShell 腳本僅適用於 Windows 代理,確保代理具有 PowerShell 版本 5 或更低版本。

解決方法

  • 嘗試在您的機器上設置一個自托管代理(連接到 inte.net)。
  • 然后你可以在自托管代理上運行任務,並選擇運行 powershell 任務。 (這可能需要您將防火牆上的一些 devops 范圍列入白名單)。

(或者)

通常Azure Cli 任務將使用az login進行身份驗證。 作為解決方法,請嘗試使用 Az CLI 任務和帶有服務連接名稱的 azureSubscription。 這包括針對 azure 訂閱的身份驗證作為其設置的一部分,因此你將能夠運行 az cli 命令。

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource service connection>
    scriptType: ps
    .....

此處還要檢查管道中使用的服務連接是否具有足夠的權限來運行腳本。為此確保服務原則/身份驗證憑據具有所需的權限

嘗試將托管代理池上的 azure-cli 版本降級/升級到接近 2.0.64 或使用托管 VS2017 代理運行 az 命令

查看Azure PowerShell 任務 - Azure 管道 | 微軟文檔

參考:

  1. Azure DevOps 管道作業在什么服務原則下運行? - 堆棧溢出
  2. az登錄失敗wih Azure DevOps管道 - VoidCC
  3. 在 Azure Powershell 任務中使用 Azure CLI - 堆棧內存溢出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM