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

Как кукловать установку драгоценного камня, специфичную для рубина марионетки?

Для модуля 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 используется для обеспечения установки драгоценных камней в установочный каталог марионетки и использования связанной версии ruby ​​Puppet.

У ресурса пакета 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,
}

Смотря на провайдер это действительно раскошеливается на gem вместо того, чтобы делать что-то в рубине (что, вероятно, вообще невозможно).

Это не настраивается. Вы можете попробовать сделать марионетку agent (или apply) бегать с PATH который предпочитает Ruby / gem Puppet другим копиям. Это может сделать это (но может сломать другие вещи). Конечно, вы теряете возможность устанавливать «системные» драгоценные камни в той же транзакции Puppet.