Мне удалось заставить Az Powershell работать в моей сборке Azure DevOps на агенте Ubuntu, добавив предыдущий шаг сборки, который устанавливает модуль Az Powershell на агенте сборки.
Я добавил сценарий powershell для установкимодуль Az и удалите модуль Azure-Rm;и я вызвал его из задачи командной строки , чтобы я мог обернуть его в sudo
, чтобы сделать его глобальным изменением.
Вот задача командной строки (YAML):
steps:
- displayName: 'Install Az Powershell Modules'
script: |
sudo /usr/bin/pwsh -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -File "$(Build.Repository.LocalPath)/build/install-az-modules.ps1"
А вот сценарий build/install-az-modules.ps1
:
<#
.SYNOPSIS
Build agent script to install Az Powershell modules. This script should be run as sudo.
On a linux build agent, this command can be run as:
sudo /usr/bin/pwsh -NoLogo -NoProfile -NonInteractive -Command . '$(Build.Repository.LocalPath)/build/install-az-modules.ps1'
#>
# Disable status info to clean up build agent stdout
$global:ProgressPreference = 'SilentlyContinue'
$global:VerbosePreference = "SilentlyContinue"
$azureRmModule = Get-InstalledModule AzureRM -ErrorAction SilentlyContinue
if ($azureRmModule) {
Write-Host 'AzureRM module exists. Removing it'
Uninstall-Module -Name AzureRM -AllVersions
Write-Host 'AzureRM module removed'
}
Write-Host 'Installing Az module...'
Install-Module Az -Force -AllowClobber
if (Get-Command Uninstall-AzureRm -ErrorAction SilentlyContinue) {
Write-Host 'Running Uninstall-AzureRm...'
Uninstall-AzureRm
}