Назад | Перейти на главную страницу

Как контролировать, какая версия оболочек Powershell Puppet доступна в Windows?

Microsoft недавно изменила свой репозиторий загрузки для Windows Powershell, чтобы требовать TLS 1.2+, который Windows Powershell 5.1 не поддерживает без изменения параметра времени выполнения на Net.ServicePointManager.

Могу ли я изменить Puppet, чтобы использовать Pwsh (7.x) по умолчанию, или есть какой-то код Puppet, который я могу изменить, чтобы ввести Net.ServicePointManager фрагмент в настроенный 5.1 для поддержки TLS 1.2 во всех сеансах Windows Powershell, инициированных Puppet?

Основная проблема, которую я пытаюсь решить, package сбой с ошибкой, похожей на этот.

Проблема была в старом windowspowershell провайдер. Исправление задокументировано Вот.

В файле readme для модуля puppetlabs-powershell есть небольшой пример того, как использовать PowerShell6 / 7 вместо 5.1 с помощью pwsh провайдер вместо powershell провайдер: https://github.com/puppetlabs/puppetlabs-powershell#requirements

Чтобы использовать pwsh провайдер, измените provider линия к pwsh и установите path если ваша установка pwsh не в PATH.

exec { 'RESOURCENAME':
  ...
  path     => '/usr/alice/pscore',
  provider => pwsh,
}