Я пытаюсь установить гемы "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 указывает, какой двоичный файл использовать?