Использование Chocolatey в качестве поставщика пакетов для Puppet
Я пытаюсь использовать Chocolatey ( http://chocolatey.org/) в качестве поставщика пакетов для Puppet, но я постоянно получаю эту ошибку при запуске агента Puppet на моем компьютере с Win 7.
info: Caching catalog for ldap-windows-vm.localdomain
err: Failed to apply catalog: Parameter provider failed: Invalid package provide
r 'chocolatey' at /etc/puppet/environments/beta/modules/stormaas/manifests/init.
pp:9
Я разместил этот модуль, https://github.com/rismoney/puppet-chocolatey, в своем каталоге modules/ на моем хозяине Puppet. У меня для pluginsync установлено значение true как на главном, так и на ведомом устройствах - и я уже использую несколько импортированные типы, которые работают с одинаковыми настройками.
Вызов пакета с:
package { 'stormaas':
ensure => installed,
provider => 'chocolatey',
}
Я попытался с обоими провайдерами, настроенными на "шоколадный" и "шоколадный", на случай, если это была проблема с кавычками, и перезапускал как главный, так и подчиненный при каждом изменении и запускал агент несколько раз, чтобы убедиться, что он обновлялся.
Все остальные аспекты модуля, который применяется к машине, работают - только не это.
Какие-нибудь мысли?
2 ответа
На самом деле это ошибка Puppet - я использую динамические среды, поэтому мой модуль изначально был помещен в / etc / puppet / environment / beta / chocolatey /, но когда я переместил модуль в / etc / puppet / modules, он работал.
Что интересно, так это то, что пользовательские типы хорошо работали в среде, но пользовательские поставщики не смогли синхронизироваться.
Кажется, модуль работает отлично - возможно, будет несколько причуд, если я столкнусь с любым из них, я исправлю его и отправлю запрос на извлечение.
Как только вы преодолеете проблемы с modulepath, вот еще немного информации, связанной с другими проблемами, которые могут возникнуть, и способы их решения.
Поставщик Chocolatey (в настоящее время расположенный в chocolatey / chocolatey) требует установки самого Chocolatey. Начиная с выпуска v1.1.0, провайдер фактически будет следить за тем, чтобы был установлен Chocolatey. Вам просто нужно добавить следующее где-то в ваших манифестах:
include chocolatey
Если вы хотите получить больше сценариев, связанных с шоколадным классом, вы можете увидеть доступные параметры в ReadMe. Пример включен:
class {'chocolatey':
chocolatey_download_url => 'https://internalurl/to/chocolatey.nupkg',
choco_install_location => 'D:\secured\choco',
use_7zip => false,
choco_install_timeout => 2700,
enable_autouninstaller => true,
}