Как установить модуль PowerShell, перенесенный в Azure Артефакты в конвейерах?

#powershell #azure-devops #azure-pipelines #azure-artifacts

#powershell #azure-devops #azure-конвейеры #azure-артефакты

Вопрос:

После этой статьи я настроил конвейеры для отправки модуля PowerShell в мою ленту артефактов.

Я могу установить модуль на свой локальный компьютер, но мне было интересно, как я могу сделать то же самое в конвейерах? Похоже, добавление источника NuGet — это интерактивный процесс, так как же конвейеры могут добавлять поток артефактов в качестве источника?

Проблема в том, что я не хочу никакого взаимодействия с пользователем в среде CI.

Ответ №1:

Если вы используете автономный агент, вам необходимо настроить module разрешение папки, автономный агент запускает cmd через учетную запись службы вместо личной учетной записи.

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

 $patToken = "$(pat)" | ConvertTo-SecureString -AsPlainText -Force

$credsAzureDevopsServices = New-Object System.Management.Automation.PSCredential("xxx", $patToken)


Register-PSRepository -Name "PowershellAzureDevopsServices" -SourceLocation "https://pkgs.dev.azure.com/{Org name}/{project name}/_packaging/{feed name}/nuget/v2" -PublishLocation "https://pkgs.dev.azure.com/{Org name}/{project name}/_packaging/{feed name}/nuget/v2" -InstallationPolicy Trusted -Credential $credsAzureDevopsServices

Get-PSRepository

Find-Module -Repository PowershellAzureDevopsServices -Credential $credsAzureDevopsServices


Install-Module -Name Get-Hello -Repository PowershellAzureDevopsServices -Credential $credsAzureDevopsServices


Get-Module -ListAvailable Get-Hello
 

Результат:

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

Update1

Нам нужно ввести код во время регистрации репозитория корпуса источника питания, метод Register-PSRepository

Это проблема с сертификацией, если мы изменим метод аутентификации, возможно, нам не нужно вводить код.

Кроме того, мы также могли бы установить модуль через cmd Install-Module Get-Hello -Scope CurrentUser -Force

Комментарии:

1. Спасибо за ваш ответ. На самом деле я зашел так далеко, но этот процесс перехода в браузер и ввода кода, как часто мне придется это делать? Это сопряжено с риском остановки конвейера, поскольку для продолжения работы требуется ввод данных пользователем.

2. Привет, я обновил ответ, пожалуйста, проверьте обновление1, а затем любезно поделитесь результатом здесь.

3. Привет @iTiamo, просто проверяю, блокирует ли вас эта проблема сейчас? Какие-либо обновления для этой проблемы?

4. Я нашел решение своей проблемы в следующем сообщении в блоге. Короче говоря: используя модуль powersellget версии 3.0.0 (в бета-версии прямо сейчас), мы можем пропустить поток кода устройства и устанавливать модули PowerShell неинтерактивно. pipehow.tech/new-psrepository/#избегание кода устройства