Я использую Марионетку для настройки поля Vagrant и хотел бы быть стороннего поставщика пакета (https://github.com/torrancew/puppet-cpanm)
README.md, в котором repo показывает, как использовать поставщика в рамках декларации, но это принимает (я верю), марионеточное ведущее устройство, которое имеет, или знает, этот поставщик. С моей Бродячей установкой у меня на самом деле нет марионеточного ведущего устройства (или Бродяга действует как один?), таким образом, я не уверен, как на самом деле использовать класс поставщика пакета (https://github.com/torrancew/puppet-cpanm/blob/master/lib/puppet/provider/package/cpanm.rb)
Что я должен сделать, или в моем Vagrantfile, моей Марионеточной декларации (декларациях), или в другом месте в конфигурации гостя/хост-системы, чтобы позволить мне использовать этого поставщика пакета?
include cpanm
в ваш манифест (ы). У вас должен быть установлен модуль провайдера и в путь к модулю
для Puppet, чтобы увидеть это.
Использование провайдера всегда проходит через проверку пригодности , которую вы можете увидеть в командах / ограничениях провайдера:
confine :exists => ['/usr/bin/cpanm', '/usr/bin/perldoc']
commands :cpanm => '/usr/bin/cpanm'
Пригодность означает, что поставщик заявляет, что перечисленные выше элементы должны существовать для того, чтобы поставщик был активен. Когда вы запускаете Puppet с помощью - debug --verbose
, появляется сообщение, сообщающее вам, когда поставщик не подходит, которое отображается в Vagrantfile следующим образом:
config.vm.provision :puppet, :options => ["--debug --trace --verbose"] do |puppet|
#other settings here
end
Полный рабочий пример использования стороннего поставщика пакетов (Chocolatey) см. В
Однако теперь, когда провайдер Chocolatey может самостоятельно выполнить установку, становится так же просто, как убедиться, что провайдер установлен, а затем добавить в манифест следующее:
include chocolatey
Вернуть его обратно в полный цикл,похоже, что cpanm также может самостоятельно установить :
include cpanm