#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/#избегание кода устройства