Как куколизировать установку гемов, специфичных для ruby ​​марионетки?

Для модуля 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 для установки драгоценных камней?

1
задан 14 January 2016 в 18:02
2 ответа

Я нашел ответ на 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,
}
1
ответ дан 3 December 2019 в 23:53

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

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

0
ответ дан 3 December 2019 в 23:53

Теги

Похожие вопросы