Terraform local-exec Powershell в ошибке DevOps Azure: запустите Connect-AzAccount для входа - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь автоматизировать создание ресурсов Azure с помощью готовой Terraform через DevOps Azure, но для некоторых частей мне нужен Powershell. Это нормально, поскольку я могу использовать эту локально-исполняемую вещь.

Скрипты Powershell работают нормально, когда я запускаю их локально на Terraform, но при запуске всего из DevOps Azure я получаю эту ошибку при входе: Запустите Connect-AzAccountвойти в систему

У меня есть субъект службы DevOps, выполняющий определение выпуска, но кажется, что контекст процесса Terraform не распространяется на выполнение сценария Powershell?

Я не хочуизвлечь материал Powershell из скрипта Terraform, чтобы запустить его как отдельную задачу DevOps, поскольку это один из шагов последовательности моего развертывания.

Что я могу сделать, чтобы эта работа работала?

1 Ответ

0 голосов
/ 18 октября 2019

Я не уверен, чье задание вы используете для Terraform, но я могу выполнить следующее в моем внешне называемом скрипте PowerShell:

$subscriptionId = $env:ARM_SUBSCRIPTION_ID
$tenantId = $env:ARM_TENANT_ID
$clientId = $env:ARM_CLIENT_ID
$secret = $env:ARM_CLIENT_SECRET

Я использую az cli, поэтому язатем выполните эту команду

az.cmd login --service-principal --username $clientId --password $secret --tenant $tenantId --output none

Но вы также можете запустить:

$securesecret = ConvertTo-SecureString -String $secret -AsPlainText -Force
$Credential = New-Object pscredential($clientId,$securesecret)
Connect-AzAccount -Credential $Credential -Tenant $tenantId -ServicePrincipal
Select-AzSubscription $subscriptionId
...