Tudo bem, então acho que descobri qual era o problema ...
Parece que recebi o erro uninitialized constant Gem::RemoteFetcher::OpenSSL
não por causa de um problema de SSL, mas porque o servidor de origem não pôde ser encontrado. Fiquei com a impressão de que a opção --source
estava se acostumando, mas não acho que foi (veja abaixo).
Como root na caixa do cliente Puppet, mudei a localização da fonte gem para ser o meu servidor gem personalizado. A execução de gem env
como root confirmou a alteração. Em seguida, atualizei meu manifesto Puppet para gerar o resultado de gem env
quando o agente Puppet foi executado e a origem ainda estava http://rubygems.org/
quando o comando gem
foi executado pelo agente Puppet. Após uma inspeção adicional, tive a impressão de que a variável de ambiente HOME
estava sendo alterada para /
antes do comando gem
ser executado (principalmente porque /.gem/ruby/1.8
foi listado como GEM PATH quando gem env
foi executado por o agente Puppet em vez de /root/.gem/ruby/1.8
ou /var/lib/puppet/.gem/ruby/1.8
).
Para testar, copiei meu arquivo /root/.gemrc
(que especificou minha origem de gemas personalizada) para /.gemrc
e executei novamente o agente Puppet. Desta vez, nenhum erro ocorreu e a gema que eu queria foi instalada com sucesso. O diretório pessoal do Puppet, por /etc/passwd
, está definido como /var/lib/puppet
, portanto, o agente do Puppet deve ser configurado para apontar seu diretório inicial para /
antes de executar manifestos.