Estou tentando instalar as gemas "sensu_plugin" e "mixlib-shellout", em um servidor windows 2008r2, de uma receita. Neste último, eu tenho o seguinte código:
%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
No entanto, ao executar a receita na minha máquina, recebo o erro "ERRO: Ao executar gem ... (Errno :: ENOENT) Nenhum arquivo ou diretório - U: /". O que eu descobri é que sempre que eu tento instalar um pacote gem usando o binário gem localizado no diretório chef-client (C: \ opscode \ chef \ incorporado \ bin \ gem), ele levantou este último erro.
A coisa é que a gem que eu gostaria de usar para instalar os pacotes gem está realmente localizada em C: / opt / sensu / embedded / bin / gem, que eu declarei na opção gem_binary.
No final, parece que o chef está ignorando a opção gem_binary e tentando instalá-lo a partir de seu próprio binário gem.
Consegui que funcionasse em um ambiente de teste com apenas 1 disco (C: /) e funciona lá. Mas assim que eu entro em um ambiente ao vivo com disco montado (U: e muitos mais), recebo o erro anterior. Poderia ser porque o chef está procurando a casa do usuário que poderia estar no U: drive?
Não consigo ver o que há de errado com essa configuração. O gem_binary está realmente indicando qual binário usar?