【发布时间】:2017-02-12 12:07:42
【问题描述】:
我已经按照官方文档安装了 Puppet,并且已经安装了 Ruby 1.8.7。
但是通过 rvm 我已经安装了 ruby 2.3.3,然后使用 gem install rack passenger 安装了机架和乘客 gem,并成功安装了 passenger-install-apache2-module。
我对puppetmaster.conf做了相应的修改,放到httpd服务的conf.d目录下。
启动 httpd 服务后,我给出了 puppet cert 并显示以下错误
[root@lab puppet-fundamentals-puppetmaster]# puppet cert
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- json (L
oadError)
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/site_ruby/1.8/puppet/module.rb:3
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/site_ruby/1.8/puppet/parser/files.rb:1
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/site_ruby/1.8/puppet/parser/templatewrapper.rb:1
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/site_ruby/1.8/puppet/parser/scope.rb:6
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/site_ruby/1.8/puppet/parser/methods.rb:2
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast/method_call.rb:2
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/site_ruby/1.8/puppet/parser/ast.rb:115
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/site_ruby/1.8/puppet/parser/parser.rb:11
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/site_ruby/1.8/puppet/parser.rb:4
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/site_ruby/1.8/puppet.rb:282
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:12
from /usr/bin/puppet:7:in `require'
我不明白为什么 Puppet 仍然在查看 ruby 1.8,即使我在 puppetmaster.conf 中提到过
PassengerRoot /usr/local/rvm/gems/ruby-2.3.3/gems/passenger-5.1.2
PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.3.3/wrappers/ruby
有什么方法可以告诉 Puppet 将 ruby-2.3.3 作为默认 ruby 来满足其所有需求?
[root@lab ~]# puppet --version
3.8.7
[root@lab ~]#
[root@lab ~]# ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]
[root@lab ~]# rvm all ruby list
rvm rubies
=* ruby-2.3.3 [ x86_64 ]
谢谢。
【问题讨论】:
-
我不相信 Puppet 3.8.7 支持 Ruby 2.3,甚至 Ruby 2.2。尝试升级到受支持/未过时的 Puppet 版本。
-
@MattSchuchard 谢谢
-
实际上我可以在这里提出一些其他的东西,但我记得 Puppet 3.x 是针对 Ruby 1.9,可能是 2.0,不太可能是 2.1。
标签: ruby-on-rails ruby apache passenger puppet