Azure Pipelines, размещенный агент Ubuntu и задача Azure CLI с PowerShell Core: использование модуля Az и правильная проверка подлинности

У меня есть несколько сценариев PowerShell, которые используют модуль PowerShell Az (Ссылка). В результате определенных требований теперь необходимо запускать эти сценарии на размещенном агенте Ubuntu (18.04).

Итак, я выбрал задачу Azure CLI с PowerShell Core в качестве типа сценария.

введите описание изображения здесь

Первая проблема, с которой я сталкиваюсь, заключается в том, что агент не знает командлетов Az. Вторая проблема заключается в том, что даже когда доступны командлеты Az, нет аутентифицированного контекста для работы с ними.

Как я могу решить эти две проблемы?


person quervernetzt    schedule 18.06.2020    source источник


Ответы (1)


Сначала необходимо установить модуль Az на размещенный агент Ubuntu. Это можно сделать с помощью задачи Azure CLI с типом сценария PowerShell Core, выполнив

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
person quervernetzt    schedule 18.06.2020
comment
Здорово! Спасибо, что поделились своим решением здесь, вы можете принять его как ответ, чтобы оно могло помочь другим членам сообщества, у которых возникают те же проблемы, и мы могли бы заархивировать эту ветку, спасибо. - person Leo Liu-MSFT; 22.06.2020