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

Chef gem_package не использует двоичный путь

Я пытаюсь установить гемы "sensu_plugin" и "mixlib-shellout" на сервере Windows 2008r2 по рецепту. В последнем у меня есть следующий код:

%w{ sensu-plugin mixlib-shellout }.each do |gem_plugin|
  gem_package gem_plugin do
    gem_binary("C:/opt/sensu/embedded/bin/gem")
    options("--no-rdoc --no-ri")
    action :install
  end
end

Тем не менее, при запуске рецепта на моем компьютере я получаю сообщение об ошибке «ОШИБКА: при выполнении gem ... (Errno :: ENOENT) Нет такого файла или каталога - U: /». Я обнаружил, что всякий раз, когда я пытаюсь установить пакет gem, используя двоичный файл gem, расположенный в каталоге chef-client (C: \ opscode \ chef \ embedded \ bin \ gem), возникает последняя ошибка.

Дело в том, что гем, который я хочу использовать для установки пакетов драгоценных камней, на самом деле находится в C: / opt / sensu / embedded / bin / gem, который я объявил в опции gem_binary.

В конце концов, похоже, что шеф-повар игнорирует параметр gem_binary и пытается установить его из собственного двоичного файла gem.

Мне удалось заставить его работать в тестовой среде только с 1 диском (C: /), и он работает там. Но как только я попадаю в живую среду с подключенным диском (U: и многие другие), я получаю предыдущую ошибку. Может быть, это потому, что шеф-повар ищет дом пользователя, который может находиться на диске U:?

Я не вижу, что не так с этой конфигурацией. Действительно ли gem_binary указывает, какой двоичный файл использовать?