Для модуля Puppet Azure требуется установка определенных драгоценных камней. Направления https://github.com/puppetlabs/puppetlabs-azure показывают следующий пример:
/opt/puppetlabs/puppet/bin/gem install azure azure_mgmt_compute azure_mgmt_storage azure_mgmt_resources azure_mgmt_network hocon retries --no-ri --no-rdoc
Конкретный двоичный файл gem / opt / puppetlabs / puppet / bin / gem
является используется для обеспечения установки драгоценных камней в каталог установки марионетки и использования puppet ' s связанная версия ruby.
Ресурс пакета Puppet имеет поставщика гемов, но он будет устанавливаться с использованием системного ruby.
Как я могу куколизировать установку драгоценного камня, специфичную для марионетки? Я предпочитаю не использовать ресурс exec
. Есть ли ресурс для puppet-agent для установки драгоценных камней?
Я нашел ответ на https://docs.puppetlabs.com/references/4.0.0/type.html#package-provider-puppet_gem
Новым в Puppet v4 является поставщик puppet_gem для ресурса пакета .
package { 'azure' :
provider => 'puppet_gem',
ensure => installed,
}
Глядя на провайдера , он действительно выполняет раскладку на гем
вместо того, чтобы делать что-то в Ruby (что, вероятно, вообще невозможно).
Это не настраивается. Вы можете попробовать запустить марионеточный агент
(или apply
) с PATH
, который предпочитает Ruby / gem Puppet другим копиям. Это может сделать это (но может сломать другие вещи). Конечно, вы теряете возможность устанавливать «системные» драгоценные камни в той же транзакции Puppet.